Python 在PDF中添加条形码、二维码

在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条码。

主要步骤:

  1. 新建PDF文档并添加页面;
  2. 在PDF页面上绘制文本;
  3. 创建 PdfCodabarBarcode 对象,然后使用其 Draw() 方法将Codabar条码绘制到页面指定位置
  4. 创建 PdfCode39Barcode 对象,然后使用其 Draw() 方法将Code39条码绘制到页面指定位置
  5. 保存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页面上。

主要步骤:

  1. 创建 BarcodeSettings 对象,然后使用其 Type 属性将条码类型设置为二维码QRCode
  2. 设置二维码的数据、宽度、纠错级别、以及是否显示文本等
  3. 基于以上设置创建 BarCodeGenerator 对象,然后使用其 GenerateImage() 方法生成二维码图片
  4. 将生成的二维码图片保存为PNG图片;
  5. 创建PDF文档,并添加一页
  6. 加载二维码图片,然后使用 DrawImage() 方法将二维码绘制到PDF页面指定位置处
  7. 保存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

相关推荐
软件工程小施同学19 分钟前
计算机学报 2025年 区块链论文 录用汇总 附pdf下载
pdf·区块链
go54631584651 小时前
Python点阵字生成与优化:从基础实现到高级渲染技术
开发语言·人工智能·python·深度学习·分类·数据挖掘
猫头虎1 小时前
2025年02月11日 Go生态洞察:Go 1.24 发布亮点全面剖析
开发语言·后端·python·golang·go·beego·go1.19
仰望天空—永强1 小时前
PS 2025【七月最新v26.5】PS铺软件安装|最新版|附带安装文件|详细安装说明|附PS插件
开发语言·图像处理·python·图形渲染·photoshop
MediaTea1 小时前
Python 库手册:xmlrpc.client 与 xmlrpc.server 模块
开发语言·python
悦悦子a啊1 小时前
Python之--字典
开发语言·python·学习
水军总督1 小时前
OpenCV+Python
python·opencv·计算机视觉
qyhua2 小时前
Windows 平台源码部署 Dify教程(不依赖 Docker)
人工智能·windows·python
一车小面包2 小时前
Python高级入门Day6
开发语言·python
攻城狮凌霄3 小时前
PHP与ChatGPT结合的技术王炸,开发高效创作小红书内容系统
python