在VB.NET中打印到打印机的首选方法是什么?

时间:2012-12-18 16:52:26

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

一点背景:创建一个从数据库输入生成报告和表单的程序。我已经把所有东西都运行得很好,但我似乎无法弄清楚我的打印问题。我已经尝试了几种打印到打印机的方法,我从自定义程序打印的每个文档都略微偏离页面右侧的中心。

我理解这是打印机本身的原因,但我怎么能适应这个?在打印预览中,报告看起来很完美。我需要一些指导,了解哪些方法可以在VB.NET中使用多种不同的打印机。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

请尝试使用e.graphics.VisibleClipBounds,而不是使用e.pagebounds作为边界框。有些打印机驱动程序对于e.pagebounds有点不可靠,而且可见的剪辑看起来更准确。

例如:

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