VB.netの印刷について

そろそろ別のシステムの納品なのでVB.netに戻ります。 Javaではテキストエディタとコマンドプロンプトで作…

そろそろ別のシステムの納品なのでVB.netに戻ります。

Javaではテキストエディタとコマンドプロンプトで作業をしていたので

統合開発環境に戻ると違和感があるかな~….あんまり無いですね。

 

.net Frameworkの有利な所は印刷処理です。

事務処理のシステムを作る場合たいていレポート機能を使います。

GUIでペタペターとあっという間にDBからデータを出して帳票を印刷できます。

が、使える高機能レポートは高いので地味にゴリゴリ.netのクラスを使います。

 

PrintDocumentクラス

ツールボックスからフォームに貼り付けます。適当な名前を付けます。

印刷する内容はPrintDocumantのPrintPageをハンドルした関数に記述します。

フォームに貼り付けたPrintDocumentをダブルクリックするとコードが自動生成されます。

こんな感じです。

Private Sub printDoc_PrintPage(ByVal sender As System.Object, _

  ByVal e As  System.Drawing.Printing.PrintPageEventArgs) Handles printDoc.PrintPage
    ‘印刷
    e.Graphics.DrawString("TEST", Me.Font, New SolidBrush(Color.Black), 100, 100)

End Sub

引数で渡されるPrintPageEventArgsのGraphicsを利用して文字や図形を描画します。

描画したものがプリンタに印刷出力されます。VB6.0のPrintに比べると書きやすいです。

上の例では紙の左隅から1インチの部分にTESTと印刷します。

単位が1/100インチなんですよね。私はmmに変換する関数を作りました。

確か印刷単位をインチではなくてメートルにする方法もあるようです。

PrintDocumentのメソッドをいろいろ使ってみると面白うと思います。

Tags:

コメントを残す