一点背景:创建一个从数据库输入生成报告和表单的程序。我已经把所有东西都运行得很好,但我似乎无法弄清楚我的打印问题。我已经尝试了几种打印到打印机的方法,我从自定义程序打印的每个文档都略微偏离页面右侧的中心。
我理解这是打印机本身的原因,但我怎么能适应这个?在打印预览中,报告看起来很完美。我需要一些指导,了解哪些方法可以在VB.NET中使用多种不同的打印机。非常感谢任何帮助。
答案 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