我的應用程序在Windows圖元文件中繪製圖表。用戶需要能夠在頁面上很好地打印圖表。快速打印的打印代碼:爲什麼我不能將圖像放在頁面上以在VB.NET中打印?
Private Sub PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
Dim header As Imaging.MetafileHeader = metafile.GetMetafileHeader()
Dim sz As New SizeF(100 * header.Bounds.Width/header.DpiX, 100 * header.Bounds.Height/header.DpiY)
Dim p As New PointF((e.PageBounds.Width - sz.Width)/2, (e.PageBounds.Height - sz.Height)/2)
e.Graphics.DrawImage(metafile, p)
End Sub
如果我打印到PDF,這看起來很完美。但是,如果我打印到實際的打印機,它偏離了中心位置,大約1/8英寸向下和向右。我做了一個快速實驗,看看PageBounds在做什麼
e.Graphics.DrawRectangle(Pens.Red, e.PageBounds)
和結果是一樣的,略偏離中心。在PDF上,它在頁面的邊緣繪製了一個矩形。對於它的價值,我已經在東芝e-Studio 3510c和HP LaserJet 4000上進行了測試,結果相同。任何幫助表示讚賞,這一直困擾着我好幾個星期。
更新:
我結束了使用e.PageSettings.PrintableArea,但它看起來像e.Graphics.VisibleClipBounds讓你相同的值每xpda的答案。