微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – PrintDocument总是有保证金

使用带边距的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处绘制应该尽可能接近(打印机驱动程序允许)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐