2012-12-18 60 views
6

小背景:創建一個從數據庫輸入生成報告和表單的程序。我擁有一切,並運行得很好,但我似乎無法弄清楚我的打印問題。我已經嘗試了幾種打印到打印機的方法,並且從我的自定義程序打印的每個文檔都略微偏離頁面中心。在VB.NET中打印到打印機的首選方法是什麼?

我明白這樣做的原因是打印機本身,而是我怎麼能適應這個?在打印預覽中,報告看起來很完美。我需要一些關於在VB.NET中使用多種多樣的打印機的方法的指導。任何幫助是極大的讚賞。

回答

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 
+0

你能在行動後的一個例子。我已經嘗試了這一點,似乎無法正確實施。 – FailHorse

+0

我已編輯答案來添加此。 – xpda

相關問題