C# 在.Net winform中打印图像

C# 在.Net winform中打印图像,c#,.net,winforms,printing,C#,.net,Winforms,Printing,我试图允许我的用户打印他们在WinForm程序中的当前页面。首先,我拍摄了应用程序的屏幕截图并将其保存到磁盘。然后我启动一个PrintPreviewDialog并将其加载到那里 这一切都是有效的,除了它离开了页面!我不知道如何更改或允许用户将打印的页面布局更改为景观和/或“自动调整”,将屏幕截图更改为1页 private void printDetailsToolStripMenuItem_Click(object sender, EventArgs e) { HUD.ShellFor

我试图允许我的用户打印他们在WinForm程序中的当前页面。首先,我拍摄了应用程序的屏幕截图并将其保存到磁盘。然后我启动一个
PrintPreviewDialog
并将其加载到那里

这一切都是有效的,除了它离开了页面!我不知道如何更改或允许用户将打印的页面布局更改为景观和/或“自动调整”,将屏幕截图更改为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);
}

我把一行改成了-->

这是可行的,除了我有将近1/3的打印页面是空白。如何最小化填充/边距,以便使用整个页面?

获取土地空间

  printDocument1.DefaultPageSettings.Landscape = true
为了调整大小,您是否尝试过Image.GetThumbnailImage。它看起来是一个可以调整图像大小以使其适合的函数

另外,看看这些例子

获取土地空间

  printDocument1.DefaultPageSettings.Landscape = true
为了调整大小,您是否尝试过Image.GetThumbnailImage。它看起来是一个可以调整图像大小以使其适合的函数

另外,看看这些例子


打印文档的默认缩放比例为1像素=0.01英寸。一张典型的纸大约7.5英寸宽(可用空间),一张750像素宽的图像将完全填满它。你的屏幕肯定比那宽


改用Graphics.DrawImage(图像,矩形)重载,这样可以重新缩放图像,使其足够宽。页面设置。横向可用于旋转。PrintDocument的默认缩放比例为1像素=0.01英寸。一张典型的纸大约7.5英寸宽(可用空间),一张750像素宽的图像将完全填满它。你的屏幕肯定比那宽


改用Graphics.DrawImage(图像,矩形)重载,这样可以重新缩放图像,使其足够宽。页面设置。横向允许旋转。打印文档的填充和页边距在printDocument1.DefaultPageSettings值中控制。

打印文档的填充和页边距在printDocument1.DefaultPageSettings值中控制。

注意:我知道这一点-->但这并不是说制作图像适配…注意:我知道-->但这并不是说使图像适配。。。?我将尝试一下,但要清楚,图像太大,因此在打印机预览页面的边缘被切掉,最后是打印页面。不,您的图像不是太大。任何屏幕截图都无法填满打印页面,打印机的分辨率非常高。你只需要把它画小一点。这也会使它看起来更好,你现在得到的胖像素并没有那么漂亮。我现在已经调整了图像的大小。我需要最小化打印页面上的填充,因为我的图像开始1/3的宽度。调整传递给DrawImage()的矩形?我将尝试一下,但要清楚,图像太大,因此在打印机预览页面的边缘被切掉,最后是打印页面。不,您的图像不是太大。任何屏幕截图都无法填满打印页面,打印机的分辨率非常高。你只需要把它画小一点。这也会使它看起来更好,你现在得到的胖像素没有那么漂亮。我现在已经调整了图像的大小。我需要最小化打印页面上的填充,因为我的图像开始穿过它的1/3。调整你传递给DrawImage的矩形()横向部分效果很好。我将尝试另一部分,即使在景观上,它也有点太宽了。景观部分效果很好。我将尝试另一部分,尽管它在风景上有点太宽了。