【问题标题】:What is the preferred method for printing to a printer in VB.NET?在 VB.NET 中打印到打印机的首选方法是什么?
【发布时间】:2012-12-05 22:35:18
【问题描述】:

一点背景知识:创建一个从数据库输入生成报告和表单的程序。我的一切正常运行,但我似乎无法弄清楚我的打印问题。我尝试了几种打印到打印机的方法,并且我从自定义程序打印的每个文档都略微偏离页面右侧的中心。

我知道这是打印机本身的原因,但我该如何适应呢?在打印预览中,报告看起来很完美。我需要一些关于哪些方法可以在 VB.NET 中的多个不同打印机上工作的指导。非常感谢任何帮助。

【问题讨论】:

    标签: .net vb.net visual-studio printing


    【解决方案1】:

    不要使用 e.pagebounds 作为边界框,而是尝试使用 e.graphics.VisibleClipBounds。使用 e.pagebounds 时,某些打印机驱动程序有点不可靠,而 visibleclipbounds 似乎更准确。

    例如:

    Sub printPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
    Dim g As Graphics
    g = e.Graphics
    g.ResetTransform()
    

    g.VisibleClipBounds 现在是一个应该是最大页面大小的矩形,可用于使文本或图形居中。只需使用 g 作为输出到打印机的图形对象。页面的水平中心是

    g.VisibleClipBounds.Left + g.VisibleClipBounds.Width / 2
    

    【讨论】:

    • 你能发布一个这样的例子吗?我已经尝试过了,但似乎无法正确实现。
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 2014-09-16
    • 2017-03-12
    • 2013-03-16
    相关资源
    最近更新 更多