将条形码添加到 pdf
Posted
技术标签:
【中文标题】将条形码添加到 pdf【英文标题】:Adding barcodes to pdfs 【发布时间】:2011-03-03 02:21:27 【问题描述】:有什么方法可以进行邮件合并,将数据(9-15 个字符长)转换为条形码?我正在尝试使用 openoffice 的 code128 进行计算,但由于某种原因,每 10 个字符串,条形码就会变得疯狂,并且 ascii 告诉我在扩展名来自的站点注册,我不想这样做
我还为 oodraw 找到了一个,但这需要手动输入值。由于我对宏不熟悉,所以我无法编写会自动执行的东西
我想做的是:
take an old pdf (only 1 page)
covert it to word or picture or something
add a function/macro/whatever to show a barcode
(whether or not the barcode shows in this file, i dont care),
given a string from excel data
reconvert to separate pdfs
or some other way that adds barcodes to pdfs
我发现的所有其他免费程序都不能很好地做到这一点,而且由于我不是真正的 pdf 人,我不会购买随机程序。我只需要为一大批数据完成此操作
【问题讨论】:
【参考方案1】:我自己也遇到过类似的问题。将python与reportlab和pyPdf一起使用,您可以将条形码(包括字符串标签)放入模板pdf中。这是我的 gitlab 代码库的链接,其中包含 python 代码:
https://github.com/glokem/barcodepdf
from pyPdf import PdfFileWriter, PdfFileReader
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm
from reportlab.graphics.barcode import code39
此块指示 python 完成其工作所需的所有导入。
string = '0000000'
x_var=0
y_var=10
只是一些小的家务
packet = StringIO.StringIO()
slab = canvas.Canvas(packet, pagesize=A4)
slab.setFillColorRGB(0,0,0)
barcode = code39.Extended39(string,barWidth=.5*mm,barHeight=10*mm, checksum=0)
barcode.drawOn(slab, x_var*mm , y_var*mm)
slab.setFont("Courier", 25)
slab.drawString(40, 10, string)
slab.save()
第一个块创建条形码,将其放在“平板”上,准备转换为 pdf。注意毫米单位,这可能不适合那些帝国倾向的人。
packet.seek(0)
new_pdf = PdfFileReader(packet)
existing_pdf = PdfFileReader(file("template.pdf", "rb"))
output = PdfFileWriter()
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
outputStream = file("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()
这个块是我不完全理解的 PDF 创建魔法。
您的“template.pdf”已经就位,一切正常。这会将 00000000 的条形码放在左下角。
非常感谢 reportlab 背后的人们,以及 pyPdf 在这里提供了一个很棒的平台!
编辑: 为清楚起见添加了代码:感谢 Amicable 和 Nico。
【讨论】:
请尝试在您的答案中总结链接中的代码,因为未来的读者不能永远依赖链接。 (例如,如果你删除了你的 github,这个答案将变得毫无意义) 感谢 Amicable,Nico 我正在试图弄清楚如何在不写关于该主题的 20000 字文章的情况下总结我的代码。不过,点已被采纳,感谢您的反馈。【参考方案2】:有一种名为 IDAutomationHC39M 的方便的花花公子字体可以免费使用——当然也有限制——但它以条形码格式写入文本。就那么简单。没脑子。 Barcode Font
【讨论】:
以上是关于将条形码添加到 pdf的主要内容,如果未能解决你的问题,请参考以下文章
绘制条形码在绘图窗口中的显示方式与在保存的 .pdf 中不同