通過python在PDF中添加條形碼和二維碼的代碼詳解
引言
在PDF中添加條碼是一個(gè)常見需求,特別是在需要自動(dòng)化處理、跟蹤或檢索PDF文件時(shí)。作為一種機(jī)器可讀的標(biāo)識(shí)符,PDF中的條碼可以包含各種類型的信息,如文檔的唯一標(biāo)識(shí)、版本號(hào)、日期等。以下是一篇關(guān)于如何使用Python在PDF中添加條形碼或二維碼的文章。
所需Python庫
Spire.PDF for Python 庫:用于在PDF文件中直接繪制條形碼,支持多種一維條碼類型,如 Codabar, Code11, Code32, Code39, Code93等。
由于Spire.PDF for Python只支持創(chuàng)建一維條碼,如果需要在PDF中添加二維碼,我們還需要結(jié)合Spire.Barcode for Python庫。
這兩個(gè)Python庫可以通過下面的pip 命令進(jìn)行安裝:
pip install Spire.Pdf
pip install Spire.Barcode
Python 在PDF 文檔中添加條形碼
Spire.PDF for Python庫提供了不同的類來代表不同的一維條碼類型,該示例將演示如何使用該庫在PDF中繪制常見的Codabar和Code39條碼。
主要步驟:
- 新建PDF文檔并添加頁面;
- 在PDF頁面上繪制文本;
- 創(chuàng)建
PdfCodabarBarcode對(duì)象,然后使用其Draw()方法將Codabar條碼繪制到頁面指定位置 - 創(chuàng)建
PdfCode39Barcode對(duì)象,然后使用其Draw()方法將Code39條碼繪制到頁面指定位置 - 保存PDF文件。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建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
# 創(chuàng)建PdfCodabarBarcode對(duì)象,并將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
# 創(chuàng)建PdfCode39Barcode對(duì)象,并將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頁面上。
主要步驟:
- 使用Python條碼庫生成二維碼圖片;
- 創(chuàng)建
BarcodeSettings對(duì)象,然后使用其Type屬性將條碼類型設(shè)置為二維碼QRCode - 設(shè)置二維碼的數(shù)據(jù)、寬度、糾錯(cuò)級(jí)別、以及是否顯示文本等
- 基于以上設(shè)置創(chuàng)建
BarCodeGenerator對(duì)象,然后使用其GenerateImage()方法生成二維碼圖片
- 創(chuàng)建
- 將生成的二維碼圖片保存為PNG圖片;
- 使用Python PDF庫將二維碼圖片繪制到PDF中;
- 創(chuàng)建PDF文檔,并添加一頁
- 加載二維碼圖片,然后使用
DrawImage()方法將二維碼繪制到PDF頁面指定位置處
- 保存PDF文檔。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
from spire.barcode import *
# 創(chuàng)建BarcodeSettings對(duì)象
settings = BarcodeSettings()
# 設(shè)置條碼類型為QRCode
settings.Type = BarCodeType.QRCode
# 設(shè)置條碼數(shù)據(jù)、寬度、糾錯(cuò)級(jí)別等
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)
# 創(chuàng)建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庫支持幾十種一維和二維條碼類型,因此對(duì)于其他Spire.PDF for Python庫不支持的一維條形碼,我們也可以參考示例二提供的方法結(jié)合使用這兩個(gè)庫,先生成指定條碼圖片,再繪制到PDF頁面上。
以上就是通過python在PDF中添加條形碼和二維碼的代碼詳解的詳細(xì)內(nèi)容,更多關(guān)于python PDF添加條形碼和二維碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python中的單下劃線與雙下劃線以及絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入
這篇文章主要介紹了python中的單下劃線與雙下劃線以及絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
詳解Python的循環(huán)結(jié)構(gòu)知識(shí)點(diǎn)
在本篇文章里小編給大家分享了關(guān)于Python循環(huán)結(jié)構(gòu)的相關(guān)知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們跟著學(xué)習(xí)下吧。2019-05-05
Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法
這篇文章主要介紹了Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python中__repr__和__str__區(qū)別詳解
這篇文章主要介紹了Python中__repr__和__str__區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
django之對(duì)FileField字段的upload_to的設(shè)定方法
今天小編就為大家分享一篇django之對(duì)FileField字段的upload_to的設(shè)定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Django-Model數(shù)據(jù)庫操作(增刪改查、連表結(jié)構(gòu))詳解
這篇文章主要介紹了Django-Model數(shù)據(jù)庫操作(增刪改查、連表結(jié)構(gòu))詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Django外鍵(ForeignKey)操作以及related_name的作用詳解
這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Django中使用極驗(yàn)Geetest滑動(dòng)驗(yàn)證碼過程解析
這篇文章主要介紹了Django中使用極驗(yàn)Geetest滑動(dòng)驗(yàn)證碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07

