6

少し背景:データベース入力からレポートとフォームを生成するプログラムを作成します。私はすべてが正常に稼働していますが、印刷の問題を理解できないようです。プリンターに印刷するためのいくつかの方法を試しましたが、カスタムプログラムから印刷するすべてのドキュメントは、ページの右側から少しずれています。

この理由はプリンター自体にあると理解していますが、どうすればこれに対応できますか?印刷プレビューでは、レポートは完璧に見えます。VB.NETの複数のさまざまなプリンターでどの方法が機能するかについてのガイダンスが必要です。どんな助けでも大歓迎です。

4

1 に答える 1

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
于 2012-12-18T16:56:19.050 に答える