C# 使用不同的打印分辨率打印固定大小的图像不会';不要改变印刷尺寸
我创建了一个固定的600X600像素大小的位图图像, 在里面画了一些东西,并试图打印出来,每个 使用与打印机不同的打印分辨率的时间 可用的C# 使用不同的打印分辨率打印固定大小的图像不会';不要改变印刷尺寸,c#,printing,resolution,C#,Printing,Resolution,我创建了一个固定的600X600像素大小的位图图像, 在里面画了一些东西,并试图打印出来,每个 使用与打印机不同的打印分辨率的时间 可用的PrinterSettings.PrinterResolutions PrintDocument pd = new PrintDocument(); PrinterResolution pr = pd.PrinterSettings.PrinterResolutions[printResCB.SelectedIndex]; pd.DefaultPageSett
PrinterSettings.PrinterResolutions
PrintDocument pd = new PrintDocument();
PrinterResolution pr = pd.PrinterSettings.PrinterResolutions[printResCB.SelectedIndex];
pd.DefaultPageSettings.PrinterResolution = pr;
pd.PrintPage += PrintPage;
pd.Print();
private void PrintPage(object o, PrintPageEventArgs e)
{
System.Drawing.Image img = pictureBox1.Image;
Point loc = new Point(100, 100);
e.Graphics.DrawImage(img, loc);
}
所有不同打印分辨率的打印文档
大小完全一样。
我希望每个打印分辨率都有一个恒定的图像大小
应导致不同的图像大小
最终我希望知道像素到彩信的转换
对于每个具体决议
我做错了什么?打印解决方案对打印输出的大小没有影响。它只是告诉打印机哪些内部分辨率应该应用于打印的数据。如果打印机符合该设置,结果将看起来更粗糙(低分辨率)或更苍白(eco),但始终具有输入三个相关参数的大小:
告诉您如何读取发送的数字,例如像素、毫米、1/100英寸PageUnit
是一个校正系数PageScale
- 第三个“参数”取决于您打印的内容:对于图像,您需要使用
格式,该格式不仅发送DrawImage
,而且发送完整的位置
,即包括矩形
大小
PrinterResolutions
集合中看到的分辨率的预期输出大小变化,您必须分析数字并相应地计算参数
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.PageScale = 3f;
e.Graphics.DrawImage(pictureBox1.Image, new Rectangle(0, 0, 50, 50));