0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでPDFにバーコードとQRコードを作成する方法

Last updated at Posted at 2024-09-13

バーコードやQRコードの統合は、物理的な資料とデジタル情報を結びつけるためにますます重要になっています。Pythonを使ってPDF内にバーコードやQRコードを作成することで、効率的なデータ管理と検索が可能になり、ドキュメントのセキュリティやインタラクティブ性が向上します。これにより、URL、商品詳細、またはユニークな識別子をエンコードし、スマートフォンや専用リーダーで簡単にスキャンして解読できるようになります。本記事では、Pythonコードを使用してPDFドキュメントにバーコードとQRコードを作成する方法を紹介します。

本記事で使用する方法は、Spire.PDF for Pythonが必要で、PyPIからインストール可能です:pip install Spire.PDF

無料ライセンスを申請

PythonでPDFドキュメントにバーコードを作成

このライブラリでは、PdfCodabarBarcodePdfCode11BarcodePdfCode32BarcodePdfCode39Barcode、およびPdfCode93Barcodeクラスを使用して、さまざまな種類のバーコードを作成できます。その後、これらのクラスのDraw()メソッドを使用して、PDFページにバーコードを描画します。詳細な手順は以下の通りです:

  1. 必要なモジュールをインポートします。
  2. PDFドキュメントを作成するためにPdfDocumentオブジェクトを作成し、ページ設定を行います。
  3. PdfDocument.Pages.Add()メソッドを使用してドキュメントにページを追加します。
  4. PdfCodabarBarcodePdfCode93ExtendedBarcodeなど、指定されたタイプのバーコードオブジェクトを作成します。
  5. バーコードのプロパティを設定します。
  6. Draw()メソッドを使用して、PDFページにバーコードを描画します。
  7. PdfDocument.SaveToFile()メソッドを使ってドキュメントを保存します。
  8. リソースを解放します。

コード例

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ドキュメントにバーコードを作成

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コードを描画します。詳細な手順は以下の通りです:

  1. 必要なモジュールをインポートします。
  2. PdfDocumentオブジェクトを作成し、ページ設定を行います。
  3. PdfDocument.Pages.Add()メソッドを使ってドキュメントにページを追加します。
  4. BarcodeSettingsオブジェクトを作成し、BarcodeSettings.TypeプロパティでQRコードの種類を設定します。
  5. BarcodeSettings.DataおよびBarcodeSettings.Data2プロパティを通じてコードの内容を設定します。
  6. QRコードの他の設定を行います。
  7. BarCodeGeneratorオブジェクトを作成し、BarCodeGenerator.GenerateImage()メソッドでQRコードの画像をバイトデータとして生成します。
  8. バイトデータを使用してStreamオブジェクトを作成します。
  9. そのStreamをPdfImage.FromStream()メソッドでPdfImageオブジェクトに読み込みます。
  10. PdfPageBase.Canvas.DrawImage()メソッドを使用して、ページにQRコード画像を描画します。
  11. PdfDocument.SaveToFile()メソッドを使ってドキュメントを保存します。
  12. リソースを解放します。

コード例

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コードを作成

本記事では、Pythonを使ってPDFドキュメントにバーコードとQRコードを作成する方法を紹介しました。

さらにPDFドキュメント処理に関するスキルについては、Spire.PDF for Pythonのチュートリアルをご覧ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?