最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過python在PDF中添加條形碼和二維碼的代碼詳解

 更新時(shí)間:2024年08月15日 11:12:26   作者:Eiceblue  
在PDF中添加條碼是一個(gè)常見需求,特別是在需要自動(dòng)化處理、跟蹤或檢索PDF文件時(shí),作為一種機(jī)器可讀的標(biāo)識(shí)符,PDF中的條碼可以包含各種類型的信息,本文介紹了如何使用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條碼。

主要步驟:

  1. 新建PDF文檔并添加頁面;
  2. 在PDF頁面上繪制文本;
  3. 創(chuàng)建 PdfCodabarBarcode 對(duì)象,然后使用其 Draw()方法將Codabar條碼繪制到頁面指定位置
  4. 創(chuàng)建 PdfCode39Barcode 對(duì)象,然后使用其Draw()方法將Code39條碼繪制到頁面指定位置
  5. 保存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頁面上。

主要步驟:

  1. 使用Python條碼庫生成二維碼圖片;
    • 創(chuàng)建 BarcodeSettings 對(duì)象,然后使用其Type屬性將條碼類型設(shè)置為二維碼QRCode
    • 設(shè)置二維碼的數(shù)據(jù)、寬度、糾錯(cuò)級(jí)別、以及是否顯示文本等
    • 基于以上設(shè)置創(chuàng)建 BarCodeGenerator 對(duì)象,然后使用其 GenerateImage() 方法生成二維碼圖片
  2. 將生成的二維碼圖片保存為PNG圖片;
  3. 使用Python PDF庫將二維碼圖片繪制到PDF中;
    • 創(chuàng)建PDF文檔,并添加一頁
    • 加載二維碼圖片,然后使用 DrawImage() 方法將二維碼繪制到PDF頁面指定位置處
  4. 保存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)入

    這篇文章主要介紹了python中的單下劃線與雙下劃線以及絕對(duì)導(dǎo)入與相對(duì)導(dǎo)入說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解Python的循環(huán)結(jié)構(gòu)知識(shí)點(diǎn)

    詳解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í)別的方法

    這篇文章主要介紹了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ū)別詳解

    這篇文章主要介紹了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è)定方法

    今天小編就為大家分享一篇django之對(duì)FileField字段的upload_to的設(shè)定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python?json模塊常用方法小結(jié)

    Python?json模塊常用方法小結(jié)

    本文主要介紹了Python?json模塊常用方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Django-Model數(shù)據(jù)庫操作(增刪改查、連表結(jié)構(gòu))詳解

    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的作用詳解

    這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中為什么要用self探討

    Python中為什么要用self探討

    這篇文章主要介紹了Python中為什么要用self探討,本文講解了Python要self的理由、為何Python給self賦值而你不必給self賦值?等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Django中使用極驗(yàn)Geetest滑動(dòng)驗(yàn)證碼過程解析

    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

最新評(píng)論

台湾省| 马关县| 翁源县| 克山县| 南澳县| 德阳市| 江口县| 托克逊县| 涞水县| 吕梁市| 股票| 疏勒县| 思南县| 都安| 青海省| 仪陇县| 宣威市| 仙桃市| 安福县| 大港区| 镇雄县| 鄯善县| 大同县| 玛多县| 霍州市| 田林县| 商都县| 富顺县| 楚雄市| 油尖旺区| 游戏| 罗江县| 小金县| 左云县| 通州区| 巢湖市| 普兰县| 庆安县| 长垣县| 堆龙德庆县| 湖北省|