在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条码。

主要步骤:

  1. 新建PDF文档并添加页面;
  2. 在PDF页面上绘制文本;
  3. 创建 PdfCodabarBarcode 对象,然后使用其 Draw() 方法将Codabar条码绘制到页面指定位置
  4. 创建 PdfCode39Barcode 对象,然后使用其 Draw() 方法将Code39条码绘制到页面指定位置
  5. 保存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页面上。

主要步骤:

  1. 创建 BarcodeSettings 对象,然后使用其 Type 属性将条码类型设置为二维码QRCode
  2. 设置二维码的数据、宽度、纠错级别、以及是否显示文本等
  3. 基于以上设置创建 BarCodeGenerator 对象,然后使用其 GenerateImage() 方法生成二维码图片
  4. 将生成的二维码图片保存为PNG图片;
  5. 创建PDF文档,并添加一页
  6. 加载二维码图片,然后使用 DrawImage() 方法将二维码绘制到PDF页面指定位置处
  7. 保存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页面上。

* 对于生成文档中的警告信息,可以点击自行申请一个月免费授权试用:

https://www.e-iceblue.cn/misc/temporary-license.html

Python 在PDF中添加条形码、二维码的更多相关文章

  1. Python zxing 库解析(条形码二维码识别)

    各种扫码软件 最近要做个二维码识别的项目,查到二维码识别有好多开源的不开源的软件 http://www.oschina.net/project/tag/238/ Zbar 首先试了一下Zbar,pyt ...

  2. 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

    在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...

  3. Python 创建本地服务器环境生成二维码

    一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...

  4. ZBar 是款桌面电脑用条形码/二维码扫描工具

    ZBar 是款桌面电脑用条形码/二维码扫描工具 windows平台python 2.7环境编译安装zbar   最近一个项目需要识别二维码,找来找去找到了zbar和zxing,中间越过无数坑,总算基本 ...

  5. python小工具myqr生成动态二维码

    python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...

  6. 如何通过github上传项目并在readme.md中展示图片二维码

    将本地项目上传至github   第一步:git init (创建仓库)   第二步:git add README.md (添加项目)git add *   第三步:git commit -m &qu ...

  7. Opencv+Zbar二维码识别(标准条形码/二维码识别)

    使用Opencv+Zbar组合可以很容易的识别图片中的二维码,特别是标准的二维码,这里标准指的是二维码成像清晰,图片中二维码的空间占比在40%~100%之间,这样标准的图片,Zbar识别起来很容易,不 ...

  8. python实现树莓派生成并识别二维码

    python实现树莓派生成并识别二维码 参考来源:http://blog.csdn.net/Burgess_Liu/article/details/40397803 设备及环境 树莓派2代 官方系统R ...

  9. DevExpress 使用条形码二维码控件打印

    参考文章: https://www.cnblogs.com/wuhuacong/p/6112976.html 转载请注明出处:撰写人:伍华聪 其实主要是二维码的实现,在使用条形码控件时,又一个属性Sy ...

  10. python笔记 利用python 自动生成条形码 二维码

    1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...

随机推荐

  1. 3款C#开源且实用的工具类库,工作效率提升利器!

    前言 在日常工作开发中工具类库是软件开发中不可或缺的一部分,它们通过提供代码重用.通用功能.隐藏复杂性.提高代码质量.扩展性等方面的优势,帮助开发者更高效.更稳定地构建软件应用程序.今天大姚给大家分享 ...

  2. SpringBoot集成MQTT

    MQTT介绍 MQTT 是基于 Publish/Subscribe(发布/订阅) 模式的物联网通信协议,凭借简单易实现.支持 QoS.报文小等特点. 其具有协议简洁.⼩巧.可扩展性强.省流量.省电等优 ...

  3. P3938

    斐波那契 题意描述 输入 5 1 1 2 3 5 7 7 13 4 12 输出 1 1 2 2 4 点拨 根据题目去找规律,每一个儿子与父亲结点具有斐波那契数的规律,我们只需要每次找到该数在斐波那契数 ...

  4. Java-JSTL标签简化和替换jsp页面上的java代码

    概念:JavaServer Pages Tag Library JSP标准标签库 作用:用于简化和替换jsp页面上的java代码 使用标签: 导入jstl相关jar包 引入标签库:taglib指令:& ...

  5. 权威技术社区InfoQ列网易数帆为年度最有价值技术团队,技术实力获广泛认可

    近日,权威技术社区InfoQ公布数字化转型技术服务商网易数帆为2020年最有价值技术团队,并被授予"最佳技术社区驱动力奖",认可网易数帆在技术领域的突出成就和实力.     Inf ...

  6. 咬文嚼图式的介绍二叉树、B树/B-树

    前言 因为本人天资愚钝,所以总喜欢将抽象化的事务具象化表达.对于各类眼花缭乱的树,只需要认知到它们只是一种数据结构,类似数组,切片,列表,映射等这些耳熟能详的词汇.对于一个数据结构而言,无非就是增删改 ...

  7. 从基础到高级应用,详解用Python实现容器化和微服务架构

    本文分享自华为云社区<Python微服务与容器化实践详解[从基础到高级应用]>,作者: 柠檬味拥抱. Python中的容器化和微服务架构实践 在现代软件开发中,容器化和微服务架构已经成为主 ...

  8. oeasy教您玩转vim - 40 - # 复制粘贴

    ​ 复制粘贴 回忆上节课内容 我们上次的内容是粘贴 小写p意味着在光标下面或者后面粘贴 大写P意味着在光标上面或者前面粘贴 p的意思是放上去,就是put 把什么放上去呢? 把 reg 中 " ...

  9. 记一次 redis 事件注册不当导致的内存泄露

    线上的程序跑着跑着内存越来越大,并且没有下降的趋势,重启一下程序也只能短暂恢复.通过 htop 命令再按一下 M 键按内存占用大小排个序,程序会占好几个G.那好,让我们来分析一下. 收集dump 通过 ...

  10. Kafka kafka在windows下的安装与配置

    kafka在windows下的安装与配置   By: 授客 QQ:1033553122     1.测试环境.............................................. ...