|
在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页面上。
主要步骤:
- 创建 BarcodeSettings 对象,然后使用其 Type 属性将条码类型设置为二维码QRCode
- 设置二维码的数据、宽度、纠错级别、以及是否显示文本等
- 基于以上设置创建 BarCodeGenerator 对象,然后使用其 GenerateImage() 方法生成二维码图片
- 将生成的二维码图片保存为PNG图片;
- 创建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页面上。
* 对于生成文档中的警告信息,可以点击自行申请一个月免费授权试用:
https://www.e-iceblue.cn/misc/temporary-license.html
来源:https://www.cnblogs.com/Yesi/p/18394868
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|