【发布时间】:2010-02-25 20:11:59
【问题描述】:
我试图让我的用户在我们的 WinForm 程序中打印他们所在的当前页面。首先,我截取应用程序的屏幕截图并将其保存到磁盘。然后我启动一个PrintPreviewDialog 并将其加载到那里。
这一切都有效,除了它离开页面的事实!我不知道如何更改或允许用户将打印的页面布局更改为 landscaped 和/或将屏幕截图“auto fit”更改为 1 页。
private void printDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
HUD.ShellForm.SaveAsImage("CaseNoteDetails.jpg", ImageFormat.Jpeg);
printPreviewDialog1.PrintPreviewControl.AutoZoom = true;
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.AutoSize = true;
printPreviewDialog1.ShowDialog();
}
void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
float x = e.MarginBounds.Left;
float y = e.MarginBounds.Top;
e.Graphics.DrawImage(Image.FromFile("c:\\CaseNoteDetails.jpg"), x, y);
}
我把一行改成了这个 -->
e.Graphics.DrawImage(Image.FromFile("c:\\CaseNoteDetails.jpg"), x, y,1000,750);
除了我有将近 1/3 的打印页面作为空白区域之外,这很有效。如何最小化 Padding/Margins 以便可以使用整个页面?
【问题讨论】:
-
注意:我知道这个 -->msdn.microsoft.com/en-us/library/6he9hz8c.aspx 但这并没有谈到使图像适合...