我自己也遇到过类似的问题。使用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文件。注意mm单位,这可能不适合那些倾斜的帝国。
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 2014-03-25 12:14:24
感谢Amicable和Nico im试图弄清楚如何总结我的代码而不写20000字的文章。点虽然采取,并感谢您的反馈。 – glokem 2014-03-25 12:40:24