【发布时间】:2018-12-22 15:32:13
【问题描述】:
我正在尝试从文件中打印图像,但 Graphics.DrawImage 在我尝试打印时会裁剪图像。 例子: 当我尝试打印Mona Lisa 时,输出为cropped
这似乎是同一个问题,但解决方案对我不起作用: DrawImage scales original image
我的代码:
private void print()
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += PrintPage;
pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
pd.Print();
}
private void PrintPage(object o, PrintPageEventArgs e)
{
Image img = Image.FromFile(@"C:\Users\Leres75\Desktop\MonaLisa.jpg");
Rectangle rect = new Rectangle(0, 0, img.Width, img.Height);
img.Save(@"C:\Users\Leres75\Desktop\TestOutput.jpg"); //not Cropped
e.Graphics.DrawImage(img, rect);
}
我尝试了 DrawImage 方法的不同变体,并尝试弄乱我的屏幕设置来更改 DPI,但输出没有改变。
如何打印整张图片?
【问题讨论】:
-
图片比页面大吗?您显示的“裁剪”版本与 A4 页面的 H:V 比例非常相似,这让我认为您只是试图在页面边界之外绘制图像。
-
试图弄乱我的屏幕设置来更改 DPI,但输出没有改变。 值得怀疑。如果您设置 dpi(图像的!!)正确(并且您需要这样做,那么保持图像的随机设置没有好处来)结果肯定会改变..
-
蒙娜丽莎的图像范围是:宽度 = 687,高度 = 1024,页面范围是宽度 = 827,高度 = 1169
-
这是打印出来的 pdf:link
-
图像边界为:宽度 = 687,高度 = 1024 - 不要忽略图像的
dpi!DrawImage也不会忽视!!!
标签: c# printing graphics drawimage printdocument