バーコードやQRコードの統合は、物理的な資料とデジタル情報を結びつけるためにますます重要になっています。Pythonを使ってPDF内にバーコードやQRコードを作成することで、効率的なデータ管理と検索が可能になり、ドキュメントのセキュリティやインタラクティブ性が向上します。これにより、URL、商品詳細、またはユニークな識別子をエンコードし、スマートフォンや専用リーダーで簡単にスキャンして解読できるようになります。本記事では、Pythonコードを使用してPDFドキュメントにバーコードとQRコードを作成する方法を紹介します。
本記事で使用する方法は、Spire.PDF for Pythonが必要で、PyPIからインストール可能です:pip install Spire.PDF
。
PythonでPDFドキュメントにバーコードを作成
このライブラリでは、PdfCodabarBarcode
、PdfCode11Barcode
、PdfCode32Barcode
、PdfCode39Barcode
、およびPdfCode93Barcode
クラスを使用して、さまざまな種類のバーコードを作成できます。その後、これらのクラスのDraw()
メソッドを使用して、PDFページにバーコードを描画します。詳細な手順は以下の通りです:
- 必要なモジュールをインポートします。
- PDFドキュメントを作成するために
PdfDocument
オブジェクトを作成し、ページ設定を行います。 -
PdfDocument.Pages.Add()
メソッドを使用してドキュメントにページを追加します。 -
PdfCodabarBarcode
やPdfCode93ExtendedBarcode
など、指定されたタイプのバーコードオブジェクトを作成します。 - バーコードのプロパティを設定します。
-
Draw()
メソッドを使用して、PDFページにバーコードを描画します。 -
PdfDocument.SaveToFile()
メソッドを使ってドキュメントを保存します。 - リソースを解放します。
コード例
from spire.pdf import *
# 新しいPDFドキュメントを作成
pdf = PdfDocument()
# ページサイズ、方向、余白を設定
pdf.PageSettings.Size = PdfPageSize.A4()
pdf.PageSettings.Orientation = PdfPageOrientation.Landscape
pdf.PageSettings.Margins.All = 50
# ドキュメントに新しいページを追加
page = pdf.Pages.Add()
# フォント、ブラシ、テキストフォーマットを作成
font = PdfTrueTypeFont("Yu Gothic UI", 14.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Black()
textFormat = PdfStringFormat(PdfTextAlignment.Left)
# ページにテキストを描画
textSize = font.MeasureString("コーダバーコード")
rect1 = RectangleF.FromLTRB(50, 160, textSize.Width + 50, textSize.Height + 160)
page.Canvas.DrawString("コーダバーコード", font, brush, rect1, textFormat)
# Codabarバーコードを作成
codabar = PdfCodabarBarcode("1-98765-43210-0")
# バーコードのプロパティを設定
codabar.BarcodeToTextGapHeight = 2.0
codabar.EnableCheckDigit = True
codabar.ShowCheckDigit = True
codabar.TextDisplayLocation = TextLocation.Bottom
# ページにバーコードを描画
codabar.Draw(page, RectangleF.FromLTRB(50, textSize.Height + 170, 300, textSize.Height + 270))
# ページにテキストを描画
textSize = font.MeasureString("Code 93 Extendedバーコード")
rect2 = RectangleF.FromLTRB(pdf.PageSettings.Size.Width / 2 + 50, 160, textSize.Width + 50, textSize.Height + 160)
page.Canvas.DrawString("Code 93 Extendedバーコード", font, brush, rect2, textFormat)
# Code 93 Extendedバーコードを作成
code93Extended = PdfCode93ExtendedBarcode("*Aa*Zz*")
# バーコードのプロパティを設定
code93Extended.BarcodeToTextGapHeight = 2.0
code93Extended.EnableCheckDigit = True
code93Extended.ShowCheckDigit = True
code93Extended.TextDisplayLocation = TextLocation.Bottom
# ページにバーコードを描画
code93Extended.Draw(page, RectangleF.FromLTRB(pdf.PageSettings.Size.Width / 2 + 50, textSize.Height + 170, pdf.PageSettings.Size.Width / 2 + 300, textSize.Height + 270))
# ドキュメントを保存
pdf.SaveToFile("output/PDFバーコード.pdf")
pdf.Close()
PythonでPDFドキュメントにQRコードを作成
PDFドキュメントにQRコードを作成するには、もう一つのライブラリSpire.Barcode for Pythonが必要です(PyPI:pip install Spire.Barcode
)。BarcodeSettings
オブジェクトを作成してQRコードの設定を行い、BarcodeGenerator.GenerateImage()
メソッドを使ってQRコードの画像をバイトデータとして生成します。QRコード画像を生成したら、PdfPageBase.Canvas.DrawImage()
メソッドを使用してPDFページにQRコードを描画します。詳細な手順は以下の通りです:
- 必要なモジュールをインポートします。
-
PdfDocument
オブジェクトを作成し、ページ設定を行います。 -
PdfDocument.Pages.Add()
メソッドを使ってドキュメントにページを追加します。 -
BarcodeSettings
オブジェクトを作成し、BarcodeSettings.Type
プロパティでQRコードの種類を設定します。 -
BarcodeSettings.Data
およびBarcodeSettings.Data2
プロパティを通じてコードの内容を設定します。 - QRコードの他の設定を行います。
-
BarCodeGenerator
オブジェクトを作成し、BarCodeGenerator.GenerateImage()
メソッドでQRコードの画像をバイトデータとして生成します。 - バイトデータを使用してStreamオブジェクトを作成します。
- そのStreamを
PdfImage.FromStream()
メソッドでPdfImage
オブジェクトに読み込みます。 -
PdfPageBase.Canvas.DrawImage()
メソッドを使用して、ページにQRコード画像を描画します。 -
PdfDocument.SaveToFile()
メソッドを使ってドキュメントを保存します。 - リソースを解放します。
コード例
from spire.barcode import BarcodeSettings, BarCodeType, QRCodeECL, BarCodeGenerator
from spire.pdf import *
# 新しいPDFドキュメントを作成
pdf = PdfDocument()
# ページサイズ、方向、余白を設定
pdf.PageSettings.Size = PdfPageSize.A4()
pdf.PageSettings.Orientation = PdfPageOrientation.Portrait
pdf.PageSettings.Margins.All = 50
# ドキュメントに新しいページを追加
page = pdf.Pages.Add()
# BarcodeSettingsオブジェクトを作成
codeSettings = BarcodeSettings()
# コードタイプをQRコードに設定
codeSettings.Type = BarCodeType.QRCode
# QRコードの内容を設定
codeSettings.Data = "Hello, World!"
codeSettings.Data2D = "Hello, World!"
# エラー訂正レベルを設定
codeSettings.QRCodeECL = QRCodeECL.L
# QRコードのテキスト表示位置を設定
codeSettings.ShowTextOnBottom = True
# QRコードの幅を設定
codeSettings.X = 3
# BarCodeGeneratorオブジェクトを作成してバーコード画像を生成
barcodeGenerator = BarCodeGenerator(codeSettings)
codeImage = barcodeGenerator.GenerateImage()
# 画像データを使用してStreamオブジェクトを作成
codeStream = Stream(codeImage)
# ページにテキストを描画
font = PdfTrueTypeFont("Yu Gothic UI", 14.0, PdfFontStyle.Bold, True)
textSize = font.MeasureString("QRコード")
rect = RectangleF.FromLTRB(50, 50, 50 + textSize.Width, 50 + textSize.Height)
brush = PdfBrushes.get_Black()
stringFormat = PdfStringFormat(PdfTextAlignment.Left)
page.Canvas.DrawString("QRコード", font, brush, rect, stringFormat)
# QRコード画像ストリームをPdfImageオブジェクトにロード
image = PdfImage.FromStream(codeStream)
# ページにQRコード画像を描画
page.Canvas.DrawImage(image, PointF(50.0, 50.0 + textSize.Height + 10.0))
# ドキュメントを保存
pdf.SaveToFile("output/PDFQRコード.pdf")
pdf.Close()
本記事では、Pythonを使ってPDFドキュメントにバーコードとQRコードを作成する方法を紹介しました。
さらにPDFドキュメント処理に関するスキルについては、Spire.PDF for Pythonのチュートリアルをご覧ください。