2017-08-05 18 views
0

私はA4サイズで2行4列の表形式でJpegとしてレコードを保存したいプロジェクトに取り組んでいます。 フォーマットにはラベルと、データベースからデータを取得するテキストボックスがほとんど含まれていません。私が考えているのは、メインパネルを追加することです。このパネルには、2行4列の形式で約8個の子パネルが含まれています。このパネルには、データベースのデータが取り込まれます。しかし、私はどのようにフォルダのA4サイズでjpegとしてメインパネルを保存するのか分からない。Jpegで表形式のデータをA4サイズでエクスポートする方法は?

+0

質問を編集することをお勧めします。私の知る限り、主な問題はWinformsやデータベースにはまったく関連していません.2D配列をJPEGファイルにレンダリングすることです。 – vorou

+0

[Interop Word library](https://www.dotnetperls.com/word)からWordにデータをエクスポートして、この[ページ](https://stackoverflow.com/questions)で提案されているようにImageに変換することができます/ 20326478/convert-word-file-pages-to-jpg-images-c-sharpを使用) – saidfagan

+0

[DrawToBitmap](https://msdn.microsoft.com/en-us/library/system.windows.forms)を参照してください。 .control.drawtobitmap(v = vs.110).aspx)メソッド。すべてのコントロールに再帰的に呼び出します。また、 'SetResolution'のような' Bitmap'クラスのメソッドが必要な場合もあります。 –

答えて

0

第一オルタナティブ:結果の画像はの素敵な丸みを帯びた角を持っていないことを

using System; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Windows.Forms; 

....  

// This code saves the current Form Control. 
// In order to save some other Control, 
// replace "this" by the Control object 
Control ctl = this; 
Bitmap bm = new Bitmap(ctl.Bounds.Width, ctl.Bounds.Height); 

Graphics g = Graphics.FromImage(bm); 

g.CopyFromScreen(ctl.Left, ctl.Top, 0, 0, bm.Size); 

g.Dispose(); 

bm.Save("bitmap.jpg", ImageFormat.Jpeg); 

.... 

enter image description here

注:コピー形式のビットマップ
をファイルには、次のような何かを行うことができますあなたのフォーム。 コーナーを囲むスクリーンの背景を削除するには、いくつかのコンシューマが必要です。フォームの半透明な性質のため、画面コンテンツの一部が表示されます。 エラーチェックを追加し、目的のファイル名を計算します。


第二オルタナティブ:彼のコメントに@Alexanderによって示唆されるように

をビットマップにフォームコントロールを描画します:

Control ctl = this; 
Rectangle rectangle = ctl.Bounds; 
Bitmap bm = new Bitmap(rectangle.Width, rectangle.Height); 

Graphics g = Graphics.FromImage(bm); 
Rectangle bmRectangle = new Rectangle(0, 0, bm.Width, bm.Height); 
ctl.DrawToBitmap(bm, bmRectangle); 

g.Dispose(); 

bm.Save("bitmap.jpg", ImageFormat.Jpeg); 

enter image description here

このバリアントはの目に見える部分での問題を回避画面の背景。 再帰呼び出しは不要です。


第三の代替:HTMLを作成し、使用する外部レンダリングツール

あなたのC#アプリケーションからHTMLテキストファイルを作成し、JPGHTMLを変換するexternal toolを呼び出すことができます。

HTMLJPGへのレンダリングはwkhtmltoimageを使用して達成することができます。

set IN=yyy.html 
set OUT=xxx.jpg 
set HEIGHT=640 

wkhtmltoimage.exe --height %HEIGHT% %IN% %OUT% 

印刷サイズA4は、スケーリングの問題です。

関連する問題