将条形码和二维码集成到文档中变得越来越重要,它为实体材料和数字信息之间提供了桥梁。在PDF中使用Python创建条形码和二维码,不仅能够提高数据管理和检索效率,还能增强文档的安全性和互动性。通过编码URL、产品详情或唯一标识符,可以让这些信息快速被智能手机或专用设备扫描解码。本文将演示如何使用Python代码在PDF文档中创建条形码和二维码。
- 使用Python在PDF文档中创建条形码
- 使用Python在PDF文档中创建二维码
本文使用的方法需要安装Spire.PDF for Python库,可以通过PyPI安装:pip install Spire.PDF
。
使用Python在PDF文档中创建条形码
我们可以使用库中的类,如PdfCodabarBarcode
、PdfCode11Barcode
、PdfCode32Barcode
、PdfCode39Barcode
和PdfCode93Barcode
来创建不同类型的条形码。接着可以通过这些类中的Draw()
方法将条形码绘制到PDF页面上。具体步骤如下:
- 导入必要的模块。
- 创建一个
PdfDocument
对象以生成PDF文档,并完成页面设置。 - 使用
PdfDocument.Pages.Add()
方法向文档添加页面。 - 创建指定类型的条形码对象,如
PdfCodabarBarcode
或PdfCode93ExtendedBarcode
。 - 设置条形码属性。
- 使用
Draw()
方法将条形码绘制到PDF页面上。 - 使用
PdfDocument.SaveToFile()
方法保存文档。 - 释放资源。
代码示例
from spire.pdf import *
# 创建一个新的 PDF 文档
pdf = PdfDocument()
# 设置页面大小、方向和边距
pdf.PageSettings.Size = PdfPageSize.A4()
pdf.PageSettings.Orientation = PdfPageOrientation.Landscape
pdf.PageSettings.Margins.All = 50
# 向文档添加新页面
page = pdf.Pages.Add()
# 创建字体、画笔和文本格式
font = PdfTrueTypeFont("微软雅黑", 14.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Black()
textFormat = PdfStringFormat(PdfTextAlignment.Left)
# 在页面上绘制文本
textSize = font.MeasureString("库德巴码")
rect1 = RectangleF.FromLTRB(50, 160, textSize.Width + 50, textSize.Height + 160)
page.Canvas.DrawString("库德巴码", font, brush, rect1, textFormat)
# 创建一个库德巴码条形码
codabar = PdfCodabarBarcode("1-98765-43210-0")
# 设置条形码属性
codabar.BarcodeToTextGapHeight = 2.0
codabar.EnableCheckDigit = True
codabar.ShowCheckDigit = True
codabar.TextDisplayLocation = TextLocation.Bottom
# 在页面上绘制条形码
codabar.Draw(page, RectangleF.FromLTRB(50, textSize.Height + 170, 300, textSize.Height + 270))
# 在页面上绘制文本
textSize = font.MeasureString("Code 93 Extended条码")
rect2 = RectangleF.FromLTRB(pdf.PageSettings.Size.Width / 2 + 50, 160, textSize.Width + 50, textSize.Height + 160)
page.Canvas.DrawString("Code 93 Extended条码", font, brush, rect2, textFormat)
# 创建一个Code 93 Extended条码
code93Extended = PdfCode93ExtendedBarcode("*Aa*Zz*")
# 设置条形码属性
code93Extended.BarcodeToTextGapHeight = 2.0
code93Extended.EnableCheckDigit = True
code93Extended.ShowCheckDigit = True
code93Extended.TextDisplayLocation = TextLocation.Bottom
# 在页面上绘制条形码
code93Extended.Draw(page, RectangleF.FromLTRB(pdf.PageSettings.Size.Width / 2 + 50, textSize.Height + 170, pdf.PageSettings.Size.Width / 2 + 300, textSize.Height + 270))
# 保存文档
pdf.SaveToFile("output/PDF条形码.pdf")
pdf.Close()
结果展示
使用Python在PDF文档中创建二维码
要在PDF文档中创建二维码,我们需要安装另一个库——Spire.Barcode for Python(PyPI:pip install Spire.Barcode
)。我们可以创建一个BarcodeSettings
对象来设置二维码,随后使用BarcodeGenerator.GenerateImage()
方法生成二维码的字节图像。在生成二维码图像后,可以使用PdfPageBase.Canvas.DrawImage()
方法将二维码绘制到PDF页面上。具体步骤如下:
- 导入必要的模块。
- 创建一个
PdfDocument
对象并进行页面设置。 - 使用
PdfDocument.Pages.Add()
方法向文档添加页面。 - 创建一个
BarcodeSettings
对象,并通过BarcodeSettings.Type
属性将码类型设置为二维码。 - 通过
BarcodeSettings.Data
和BarcodeSettings.Data2
属性设置二维码的内容。 - 进行其他二维码设置。
- 创建一个
BarCodeGenerator
对象,并使用BarCodeGenerator.GenerateImage()
方法生成二维码图像的字节数据。 - 使用字节数据创建一个Stream对象。
- 使用
PdfImage.FromStream()
方法将Stream加载到PdfImage
对象中。 - 使用
PdfPageBase.Canvas.DrawImage()
方法将二维码图像绘制到页面上。 - 使用
PdfDocument.SaveToFile()
方法保存文档。 - 释放资源。
代码示例
from spire.barcode import BarcodeSettings, BarCodeType, QRCodeECL, BarCodeGenerator
from spire.pdf import *
# 创建一个新的 PDF 文档
pdf = PdfDocument()
# 设置页面大小、方向和边距
pdf.PageSettings.Size = PdfPageSize.A4()
pdf.PageSettings.Orientation = PdfPageOrientation.Portrait
pdf.PageSettings.Margins.All = 50
# 向文档添加新页面
page = pdf.Pages.Add()
# 创建一个 BarcodeSettings 对象
codeSettings = BarcodeSettings()
# 将代码类型设置为 QR Code
codeSettings.Type = BarCodeType.QRCode
# 设置 QR Code 内容
codeSettings.Data = "Hello, World!"
codeSettings.Data2D = "Hello, World!"
# 设置错误纠正级别
codeSettings.QRCodeECL = QRCodeECL.L
# 设置 QR Code 文本显示位置
codeSettings.ShowTextOnBottom = True
# 设置 QR Code 的宽度
codeSettings.X = 3
# 创建一个 BarCodeGenerator 对象并生成条形码图像
barcodeGenerator = BarCodeGenerator(codeSettings)
codeImage = barcodeGenerator.GenerateImage()
# 使用图像数据创建一个 Stream 对象
codeStream = Stream(codeImage)
# 在页面上绘制文本
font = PdfTrueTypeFont("微软雅黑", 14.0, PdfFontStyle.Bold, True)
textSize = font.MeasureString("二维码")
rect = RectangleF.FromLTRB(50, 50, 50 + textSize.Width, 50 + textSize.Height)
brush = PdfBrushes.get_Black()
stringFormat = PdfStringFormat(PdfTextAlignment.Left)
page.Canvas.DrawString("二维码", font, brush, rect, stringFormat)
# 将 QR 码图像流加载到 PdfImage 对象中
image = PdfImage.FromStream(codeStream)
# 在页面上绘制 QR 码图像
page.Canvas.DrawImage(image, PointF(50.0, 50.0 + textSize.Height + 10.0))
# 保存文档
pdf.SaveToFile("output/PDF二维码.pdf")
pdf.Close()
结果展示
本文展示了如何使用Python在PDF文档中创建条形码和二维码。
有关更多PDF文档处理技巧,请参阅Spire.PDF for Python教程。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。