使用带边距的PrintDocument时遇到问题.
无论我做什么,我打印的所有东西都有一个边距,这意味着在需要的地方没有任何对齐.
这是我用来创建PrintDocument的代码
public void Print() { PrintDocument printDocument = new PrintDocument(); printDocument.DefaultPageSettings.PaperSize = new PaperSize("A5",583,827); printDocument.OriginAtMargins = true; printDocument.DefaultPageSettings.Margins.Top = 0; printDocument.DefaultPageSettings.Margins.Left = 0; printDocument.DefaultPageSettings.Margins.Right = 0; printDocument.DefaultPageSettings.Margins.Bottom = 0; if (!string.IsNullOrWhiteSpace(PrinterName)) { printDocument.PrinterSettings.PrinterName = PrinterName; } printDocument.PrintController = new StandardPrintController(); printDocument.PrintPage += On_PrintPage; printDocument.Print(); }
On_PrintPage方法,对e.Graphics.Draw …方法进行了各种调用.
如何才能使我在0,0打印的内容打印在页面的左上角.我知道如果打印机无法打印到页面边缘那么它将是空白的,但它应该这样做而不是打印0,0而不是在页面的左上角.
我真的迷失在这里
解决方法
有趣的是,打印功能为时已晚,无法设置大多数属性,只能应用于后续页面
你需要使用PrintDocument.QueryPageSettings事件并在那里设置属性,我总是设置页面设置而不仅仅是默认值.然后在0,0处绘制应该尽可能接近(打印机驱动程序允许)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。