我自己也遇到過類似的問題。使用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