引言
在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 代码:
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页面上。
主要步骤:
- 使用python条码库生成二维码图片;
- 创建
barcodesettings
对象,然后使用其type属性将条码类型设置为二维码qrcode - 设置二维码的数据、宽度、纠错级别、以及是否显示文本等
- 基于以上设置创建
barcodegenerator
对象,然后使用其generateimage()
方法生成二维码图片
- 创建
- 将生成的二维码图片保存为png图片;
- 使用python pdf库将二维码图片绘制到pdf中;
- 创建pdf文档,并添加一页
- 加载二维码图片,然后使用
drawimage()
方法将二维码绘制到pdf页面指定位置处
- 保存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页面上。
以上就是通过python在pdf中添加条形码和二维码的代码详解的详细内容,更多关于python pdf添加条形码和二维码的资料请关注代码网其它相关文章!
发表评论