QRコードを印刷するのに便利なフリーソフトDotNetBarcodeクラスライブラリをVB.NETで使用した。その際、DotNetBarcodeクラスライブラリが生成するSystem.Drawing.Graphicsを印刷する方法が分からず悩んだのでここで紹介。
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
' QRコードの幅
Dim width As Integer = 100
' QRコードの高さ
Dim height As Integer = width
' QRコードを印刷する座標X
Dim positionX As Integer = 0
' QRコードを印刷する座標Y
Dim positionY As Integer = 0
' QRコードとして書き込む文字列
Dim qRString As String = "QR CODE"
' 100x100サイズのImageオブジェクトを生成する
Dim qRCodeBitMap As Bitmap = New Bitmap(width, height)
' ImageオブジェクトのGraphicsオブジェクトを作成する
Dim qRCodeGraphics As Graphics = Graphics.FromImage(qRCodeBitMap)
' DotNetBarcodeオブジェクトを生成する
Dim bc1 As System.DotNetBarcode = New System.DotNetBarcode
' QRコードに変更する
bc1.Type = DotNetBarcode.Types.QRCode
' CheckDigit文字を表示する
bc1.PrintCheckDigitChar = True
' GraphicsオブジェクトにQRコードを書き込む
bc1.WriteBar(qRString, 0, 0, width, height, qRCodeGraphics)
' Imageオブジェクトを印刷する
e.Graphics.DrawImage(qRCodeBitMap, positionX, positionY)
' Graphicsオブジェクトを解放する
qRCodeGraphics.Dispose()
End Sub