翼度科技»论坛 编程开发 python 查看内容

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

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
在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条码。
主要步骤:

  • 新建PDF文档并添加页面;
  • 在PDF页面上绘制文本;
  • 创建 PdfCodabarBarcode 对象,然后使用其 Draw() 方法将Codabar条码绘制到页面指定位置
  • 创建 PdfCode39Barcode 对象,然后使用其 Draw() 方法将Code39条码绘制到页面指定位置
  • 保存PDF文件。

Python 代码:
  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建PDF文件
  4. pdf = PdfDocument()
  5. # 添加页面
  6. page = pdf.Pages.Add(PdfPageSize.A4())
  7. y = 20.0
  8. # 在页面上绘制文本
  9. font = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Bold, True)
  10. text = PdfTextWidget()
  11. text.Font = font
  12. text.Text = "Codabar:"
  13. result = text.Draw(page, 0.0, y)
  14. page = result.Page
  15. y = result.Bounds.Bottom + 2
  16. # 创建PdfCodabarBarcode对象,并将Codabar条码绘制到页面上
  17. Codabar = PdfCodabarBarcode("00:12-3456/7890")
  18. Codabar.BarcodeToTextGapHeight = 1.0
  19. Codabar.EnableCheckDigit = True
  20. Codabar.ShowCheckDigit = True
  21. Codabar.TextDisplayLocation = TextLocation.Bottom
  22. Codabar.TextColor = PdfRGBColor(Color.get_Green())
  23. Codabar.Draw(page, PointF(0.0, y))
  24. y = Codabar.Bounds.Bottom + 8
  25. # 在页面上绘制文本
  26. text.Text = "Code39:"
  27. result = text.Draw(page, 0.0, y)
  28. page = result.Page
  29. y = result.Bounds.Bottom + 2
  30. # 创建PdfCode39Barcode对象,并将Code39条码绘制到页面上
  31. Code39 = PdfCode39Barcode("ABC-012689")
  32. Code39.BarcodeToTextGapHeight = 1.0
  33. Code39.TextDisplayLocation = TextLocation.Bottom
  34. Code39.TextColor = PdfRGBColor(Color.get_Green())
  35. Code39.Draw(page, PointF(0.0, y))
  36. # 保存PDF文档
  37. pdf.SaveToFile("PDF中添加条形码.pdf")
  38. pdf.Close()
复制代码

 
 
Python 在PDF文档中添加二维码

该示例中我们需要先借助Spire.Barcode for Python库来生成二维码图片,然后再使用Spire.PDF for Python库将二维码图片绘制到PDF页面上。
主要步骤:

  • 创建 BarcodeSettings 对象,然后使用其 Type 属性将条码类型设置为二维码QRCode
  • 设置二维码的数据、宽度、纠错级别、以及是否显示文本等
  • 基于以上设置创建 BarCodeGenerator 对象,然后使用其 GenerateImage() 方法生成二维码图片
  • 将生成的二维码图片保存为PNG图片;
  • 创建PDF文档,并添加一页
  • 加载二维码图片,然后使用 DrawImage() 方法将二维码绘制到PDF页面指定位置处
  • 保存PDF文档。
 
Python 代码:
  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. from spire.barcode import *
  4. # 创建BarcodeSettings对象
  5. settings = BarcodeSettings()
  6. # 设置条码类型为QRCode
  7. settings.Type = BarCodeType.QRCode
  8. # 设置条码数据、宽度、纠错级别等
  9. settings.Data = "ABCD12345"
  10. settings.Data2D = "ABCD12345"
  11. settings.X = 2
  12. settings.QRCodeECL = QRCodeECL.M
  13. settings.ShowTextOnBottom = True
  14. # 生成二维码图片
  15. barCodeGenerator = BarCodeGenerator(settings)
  16. QRimage = barCodeGenerator.GenerateImage()
  17. # 将二维码图片保存为PNG文件
  18. with open("QRCode.png", "wb") as file:
  19.     file.write(QRimage)
  20. # 创建PDF文档
  21. pdf = PdfDocument()
  22. # 添加页面
  23. page = pdf.Pages.Add()
  24. # 将二维码图片绘制到PDF页面上
  25. pdfImage = PdfImage.FromFile("QRCode.png")
  26. page.Canvas.DrawImage(pdfImage, 0.0, 20.0)
  27. # 保存PDF文档
  28. pdf.SaveToFile("Pdf中添加二维码.pdf")
  29. pdf.Close()
复制代码

 
Spire.Barcode for Python库支持几十种一维和二维条码类型,因此对于其他Spire.PDF for Python库不支持的一维条形码,我们也可以参考示例二提供的方法结合使用这两个库,先生成指定条码图片,再绘制到PDF页面上。
 
* 对于生成文档中的警告信息,可以点击自行申请一个月免费授权试用:
https://www.e-iceblue.cn/misc/temporary-license.html

来源:https://www.cnblogs.com/Yesi/p/18394868
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具