PDF 文件中的条形码可以加快数据检索和处理速度。您可以在 PDF 文件中添加包含详细信息的条形码,如文档的唯一标识符、版本号、创建者,甚至整个文档内容。扫描后,所有信息都会立即解码。这种即时访问对于处理大量文件的企业来说非常有用,因为它最大限度地减少了人工搜索和数据录入所需的时间和精力。在本文中,您将学习如何使用 Spire.PDF for Python 和 Spire.Barcode for Python 在 Python 中为 PDF 添加条形码和二维码。
安装 Python 库
本教程需要用到 Spire.PDF for Python 和 Spire.Barcode for Python。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
pip install Spire.Barcode
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
Python 在 PDF 中添加条形码
Spire.PDF for Python 提供了多种类来代表不同的一维条码类型,如 PdfCodabarBarcode、PdfCode11Barcode、PdfCode32Barcode、PdfCode39Barcode、PdfCode93Barcode。
每一类都提供了相应的属性,用于设置条形码文本、大小、颜色等。以下是在 PDF 页面指定位置绘制常见的 Codabar、Code39 和 Code93 条码的步骤。
- 创建 PdfDocument 对象。
- 使用 PdfDocument.Pages.Add() 方法在 PDF 中添加一页。
- 创建 PdfTextWidget 对象,然后使用 PdfTextWidget.Draw() 方法在页面上绘制文本。
- 创建 PdfCodabarBarcode、PdfCode39Barcode、PdfCode93Barcode 对象。
- 通过相应类的 BarcodeToTextGapHeight 属性设置条形码与显示文本之间的间隙。
- 通过相应类的 TextDisplayLocation 属性设置条形码文本的显示位置。
- 通过相应类的 TextColor 属性设置条形码文本的颜色。
- 使用相应类的 Draw(page: PdfPageBase, location: PointF) 方法在 PDF 页面的指定位置绘制条形码。
- 使用 PdfDocument.SaveToFile() 方法保存生成的 PDF 文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PDF文档
pdf = PdfDocument()
# 添加一页
page = pdf.Pages.Add(PdfPageSize.A4())
# 初始化y轴
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
# 在页面上绘制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_Blue())
Codabar.Draw(page, PointF(0.0, y))
y = Codabar.Bounds.Bottom + 6
# 在页面上绘制文本
text.Text = "Code39:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 在页面上绘制Code39条码
Code39 = PdfCode39Barcode("16-273849")
Code39.BarcodeToTextGapHeight = 1.0
Code39.TextDisplayLocation = TextLocation.Bottom
Code39.TextColor = PdfRGBColor(Color.get_Blue())
Code39.Draw(page, PointF(0.0, y))
y = Code39.Bounds.Bottom + 6
# 在页面上绘制文本
text.Text = "Code93:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 在页面上绘制Code93条码
Code93 = PdfCode93Barcode("16-273849")
Code93.BarcodeToTextGapHeight = 1.0
Code93.TextDisplayLocation = TextLocation.Bottom
Code93.TextColor = PdfRGBColor(Color.get_Blue())
Code93.QuietZone.Bottom = 5.0
Code93.Draw(page, PointF(0.0, y))
# 保存文档
pdf.SaveToFile("添加条形码.pdf")
pdf.Close()
Python 在 PDF 中添加二维码
要在 PDF 文件中添加二维条码,首先需要使用 Spire.Barcode for Python 库生成二维码,然后再通过 Spire.PDF for Python 库将二维码图片添加到 PDF 文件中。具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.Pages.Add() 方法添加 PDF 页面。
- 创建 BarcodeSettings 对象。
- 调用 BarcodeSettings 类的相应属性来设置条形码类型、数据、纠错级别和宽度等。
- 根据设置创建 BarCodeGenerator 对象。
- 使用 BarCodeGenerator.GenerateImage() 方法生成二维码图像。
- 使用 PdfPageBase.Canvas.DrawImage() 方法在 PDF 页面的指定位置绘制二维码图像。
- 使用 PdfDocument.SaveToFile() 方法保存生成的 PDF 文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
from spire.barcode import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 添加一页
page = pdf.Pages.Add()
# 创建BarcodeSettings对象
settings = BarcodeSettings()
# 将条码类型设置为QRcode
settings.Type = BarCodeType.QRCode
# 设置二维码数据
settings.Data = "E-iceblue"
settings.Data2D = "E-iceblue"
# 设置二维码宽度
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)
# 初始化y轴
y = 20.0
# 创建字体
font = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Bold, True)
# 在页面上绘制文本
text = PdfTextWidget()
text.Font = font
text.Text = "QRCode:"
result = text.Draw(page, 0.0, y)
page = result.Page
y = result.Bounds.Bottom + 2
# 将二维码图片绘制到页面指定位置
pdfImage = PdfImage.FromFile("QRCode.png")
page.Canvas.DrawImage(pdfImage, 0.0, y)
# 保存文档
pdf.SaveToFile("添加二维码.pdf")
pdf.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。