私のアプリケーションでは、パネル内に囲まれたチャートがあります。ツールボックスからprintdocumentコンポーネントを追加し、チャートを印刷したいときにビットマップを作成し、ビットマップ内にパネルを取得します(結果として、パネル内にあるチャート)。私の問題は、ビットマップを作成するときに、それをプリンターに送信して印刷すると、チャートの一部が下と右側から食い尽くされることです。以下はこれを実行するための私のコードです
private void button1_Click(object sender, EventArgs e)
{
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDocument1;
printDialog.UseEXDialog = true;
//Get the document
if (DialogResult.OK == printDialog.ShowDialog())
{
printDocument1.DocumentName = "Test Page Print";
printPreviewDialog1.Document = printDocument1;
if (DialogResult.OK == printPreviewDialog1.ShowDialog())
printDocument1.Print();
}
}
これは、print_document を初期化するためのボタンです。(いちいち印刷して紙とインクを消費しなくて済むように、印刷プレビューを追加しました)
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap bm = new Bitmap(this.panel1.Width, this.panel1.Height);
this.panel1.DrawToBitmap(bm, new Rectangle(50, 50, this.panel1.Width + 50, this.panel1.Height + 50));
e.Graphics.DrawImage(bm, 0, 0);
}
グラフが大きすぎてページに収まらないのではないかと思っていましたが、ビットマップを保存すると. ページ内に問題なく収まります。実際には、下部と右側に空きスペースが多すぎます。(ビットマップ関数への描画の後に追加
bm.Save(@"c:\LOAN_GRAPH.png");
描画画像の代わりに、画像はcに保存されます:)
私を助けることができる人なら誰でも本当に感謝しています。