在 C# 中,我尝试使用 PrintDocument 类和以下代码打印图像。该图像的尺寸为 1200 像素宽度和 1800 像素高度。我正在尝试使用小型 zeebra 打印机在 4*6 纸张上打印此图像。但程序只打印 4*6 的大图像。这意味着它没有将图像调整为纸张尺寸!
PrintDocument pd = new PrintDocument();
pd.PrintPage += (sender, args) =>
{
Image i = Image.FromFile("C://tesimage.PNG");
Point p = new Point(100, 100);
args.Graphics.DrawImage(i, 10, 10, i.Width, i.Height);
};
pd.Print();
当我使用“窗口打印”打印相同的图像时(右键单击并选择打印,它会自动缩放到纸张尺寸并正确打印。这意味着所有内容都采用 4*6 纸张。)我如何在我的 C# 程序中执行相同的操作?
您传递给 DrawImage 方法的参数应该是您想要图像在纸张上的大小,而不是图像本身的大小,然后 DrawImage 命令将为您处理缩放。最简单的方法可能是使用以下 DrawImage 命令的替代。
args.Graphics.DrawImage(i, args.MarginBounds);
注意:如果图像的比例与矩形不同,这将使图像倾斜。对图像尺寸和纸张尺寸进行一些简单的数学计算将允许您创建一个适合纸张边界的新矩形,而不会使图像倾斜。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)