在PDF中新增條碼是一個常見需求,特別是在需要自動化處理、跟蹤或檢索PDF檔案時。作為一種機器可讀的識別符號,PDF中的條碼可以包含各種型別的資訊,如文件的唯一標識、版本號、日期等。以下是一篇關於如何使用Python在PDF中新增條形碼或二維碼的文章。
所需Python庫
Spire.PDF for Python 庫:用於在PDF檔案中直接繪製條形碼,支援多種一維條碼型別,如 Codabar, Code11, Code32, Code39, Code93等。
由於Spire.PDF for Python只支援建立一維條碼,如果需要在PDF中新增二維碼,我們還需要結合Spire.Barcode for Python庫。
這兩個Python庫可以透過下面的pip 命令進行安裝:
pip install Spire.Pdf
pip install Spire.Barcode
Python 在PDF 文件中新增條形碼
Spire.PDF for Python庫提供了不同的類來代表不同的一維條碼型別,該示例將演示如何使用該庫在PDF中繪製常見的Codabar和Code39條碼。
主要步驟:
- 新建PDF文件並新增頁面;
- 在PDF頁面上繪製文字;
- 建立 PdfCodabarBarcode 物件,然後使用其 Draw() 方法將Codabar條碼繪製到頁面指定位置
- 建立 PdfCode39Barcode 物件,然後使用其 Draw() 方法將Code39條碼繪製到頁面指定位置
- 儲存PDF檔案。
Python 程式碼:
from spire.pdf.common import * from spire.pdf import * # 建立PDF檔案 pdf = PdfDocument() # 新增頁面 page = pdf.Pages.Add(PdfPageSize.A4()) y = 20.0 # 在頁面上繪製文字 font = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Bold, True) text = PdfTextWidget() text.Font = font text.Text = "Codabar:" result = text.Draw(page, 0.0, y) page = result.Page y = result.Bounds.Bottom + 2 # 建立PdfCodabarBarcode物件,並將Codabar條碼繪製到頁面上 Codabar = PdfCodabarBarcode("00:12-3456/7890") Codabar.BarcodeToTextGapHeight = 1.0 Codabar.EnableCheckDigit = True Codabar.ShowCheckDigit = True Codabar.TextDisplayLocation = TextLocation.Bottom Codabar.TextColor = PdfRGBColor(Color.get_Green()) Codabar.Draw(page, PointF(0.0, y)) y = Codabar.Bounds.Bottom + 8 # 在頁面上繪製文字 text.Text = "Code39:" result = text.Draw(page, 0.0, y) page = result.Page y = result.Bounds.Bottom + 2 # 建立PdfCode39Barcode物件,並將Code39條碼繪製到頁面上 Code39 = PdfCode39Barcode("ABC-012689") Code39.BarcodeToTextGapHeight = 1.0 Code39.TextDisplayLocation = TextLocation.Bottom Code39.TextColor = PdfRGBColor(Color.get_Green()) Code39.Draw(page, PointF(0.0, y)) # 儲存PDF文件 pdf.SaveToFile("PDF中新增條形碼.pdf") pdf.Close()
Python 在PDF文件中新增二維碼
該示例中我們需要先借助Spire.Barcode for Python庫來生成二維碼圖片,然後再使用Spire.PDF for Python庫將二維碼圖片繪製到PDF頁面上。
主要步驟:
- 建立 BarcodeSettings 物件,然後使用其 Type 屬性將條碼型別設定為二維碼QRCode
- 設定二維碼的資料、寬度、糾錯級別、以及是否顯示文字等
- 基於以上設定建立 BarCodeGenerator 物件,然後使用其 GenerateImage() 方法生成二維碼圖片
- 將生成的二維碼圖片儲存為PNG圖片;
- 建立PDF文件,並新增一頁
- 載入二維碼圖片,然後使用 DrawImage() 方法將二維碼繪製到PDF頁面指定位置處
- 儲存PDF文件。
Python 程式碼:
from spire.pdf.common import * from spire.pdf import * from spire.barcode import * # 建立BarcodeSettings物件 settings = BarcodeSettings() # 設定條碼型別為QRCode settings.Type = BarCodeType.QRCode # 設定條碼資料、寬度、糾錯級別等 settings.Data = "ABCD12345" settings.Data2D = "ABCD12345" settings.X = 2 settings.QRCodeECL = QRCodeECL.M settings.ShowTextOnBottom = True # 生成二維碼圖片 barCodeGenerator = BarCodeGenerator(settings) QRimage = barCodeGenerator.GenerateImage() # 將二維碼圖片儲存為PNG檔案 with open("QRCode.png", "wb") as file: file.write(QRimage) # 建立PDF文件 pdf = PdfDocument() # 新增頁面 page = pdf.Pages.Add() # 將二維碼圖片繪製到PDF頁面上 pdfImage = PdfImage.FromFile("QRCode.png") page.Canvas.DrawImage(pdfImage, 0.0, 20.0) # 儲存PDF文件 pdf.SaveToFile("Pdf中新增二維碼.pdf") pdf.Close()
Spire.Barcode for Python庫支援幾十種一維和二維條碼型別,因此對於其他Spire.PDF for Python庫不支援的一維條形碼,我們也可以參考示例二提供的方法結合使用這兩個庫,先生成指定條碼圖片,再繪製到PDF頁面上。
* 對於生成文件中的警告資訊,可以點選自行申請一個月免費授權試用:
https://www.e-iceblue.cn/misc/temporary-license.html