我正在使用装有8.5 x 8.5英寸纸张的冲击式打印机进行打印。当我打印时,打印机弹出 11 英寸而不是 8.5 英寸。
PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.Unknown, element.Width, element.Height);
PrintDialog dialog = new PrintDialog();
dialog.PrintTicket.PageMediaSize = pageSize;
Console.WriteLine(dialog.PrintableAreaHeight); // 816, good!
dialog.PrintQueue = myQueue; // selected from a combobox
Console.WriteLine(dialog.PrintableAreaHeight); // 1056 :(
dialog.PrintVisual(element, description);
使用“如何在 .NET 中将 Twips 转换为像素? ”我确定 8.5 英寸是 816 像素,这是我的element.Width
和element.Height
. 我正在设置一个新的PageMediaSize
,但这似乎没有效果,dialog.PrintableAreaHeight
当我在对话框上设置队列时仍然以 1056 结束。
如果我这样做dialog.ShowDialog()
了,请手动选择我的打印机,然后在打印机的高级设置中手动查找并更改纸张尺寸,然后dialog.PrintableAreaHeight
正确反映更改。
此页面http://go4answers.webhost4life.com/Example/set-printdialogs-default-page-size-168976.aspx建议我只能设置PageMediaSize
打印机支持的。使用GetPrintCapabilities
my 上的函数PrintQueue
,我看到了 10 个左右页面大小的列表,其中没有一个是 8.5 x 8.5。这与我在 Windows 中转到打印机的高级设置时看到的列表相同。