2014年12月16日火曜日

VB.NET DotNetBarcodeクラスライブラリを使用してQRコードを印刷する

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