将条形码和二维码集成到文档中变得越来越重要,它为实体材料和数字信息之间提供了桥梁。在PDF中使用Python创建条形码和二维码,不仅能够提高数据管理和检索效率,还能增强文档的安全性和互动性。通过编码URL、产品详情或唯一标识符,可以让这些信息快速被智能手机或专用设备扫描解码。本文将演示如何使用Python代码在PDF文档中创建条形码和二维码

  • 使用Python在PDF文档中创建条形码
  • 使用Python在PDF文档中创建二维码

本文使用的方法需要安装Spire.PDF for Python库,可以通过PyPI安装:pip install Spire.PDF

申请免费License

使用Python在PDF文档中创建条形码

我们可以使用库中的类,如PdfCodabarBarcodePdfCode11BarcodePdfCode32BarcodePdfCode39BarcodePdfCode93Barcode来创建不同类型的条形码。接着可以通过这些类中的Draw()方法将条形码绘制到PDF页面上。具体步骤如下:

  1. 导入必要的模块。
  2. 创建一个PdfDocument对象以生成PDF文档,并完成页面设置。
  3. 使用PdfDocument.Pages.Add()方法向文档添加页面。
  4. 创建指定类型的条形码对象,如PdfCodabarBarcodePdfCode93ExtendedBarcode
  5. 设置条形码属性。
  6. 使用Draw()方法将条形码绘制到PDF页面上。
  7. 使用PdfDocument.SaveToFile()方法保存文档。
  8. 释放资源。

代码示例

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中创建条形码

使用Python在PDF文档中创建二维码

要在PDF文档中创建二维码,我们需要安装另一个库——Spire.Barcode for Python(PyPI:pip install Spire.Barcode)。我们可以创建一个BarcodeSettings对象来设置二维码,随后使用BarcodeGenerator.GenerateImage()方法生成二维码的字节图像。在生成二维码图像后,可以使用PdfPageBase.Canvas.DrawImage()方法将二维码绘制到PDF页面上。具体步骤如下:

  1. 导入必要的模块。
  2. 创建一个PdfDocument对象并进行页面设置。
  3. 使用PdfDocument.Pages.Add()方法向文档添加页面。
  4. 创建一个BarcodeSettings对象,并通过BarcodeSettings.Type属性将码类型设置为二维码。
  5. 通过BarcodeSettings.DataBarcodeSettings.Data2属性设置二维码的内容。
  6. 进行其他二维码设置。
  7. 创建一个BarCodeGenerator对象,并使用BarCodeGenerator.GenerateImage()方法生成二维码图像的字节数据。
  8. 使用字节数据创建一个Stream对象。
  9. 使用PdfImage.FromStream()方法将Stream加载到PdfImage对象中。
  10. 使用PdfPageBase.Canvas.DrawImage()方法将二维码图像绘制到页面上。
  11. 使用PdfDocument.SaveToFile()方法保存文档。
  12. 释放资源。

代码示例

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中创建二维码

本文展示了如何使用Python在PDF文档中创建条形码和二维码。

有关更多PDF文档处理技巧,请参阅Spire.PDF for Python教程


大丸子
12 声望3 粉丝