2010-06-12 9 views
2

은 데이터 (9-15 문자 길이)가 바코드로 변환되는 편지 병합과 같은 작업을 수행 할 수있는 방법이 있습니까? 메신저 openoffice의 code128을 사용하여 메신저하지만, 어떤 이유로, 10 개의 문자열, 바코드가 미쳐 버리고 ascii가 확장자가있는 사이트에 등록하라고 알려줍니다.pdf에 바코드 추가

나는 또한 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 

내가 잘 이렇게하지 발견 다른 무료 프로그램, IM이 아니기 때문에 pdf 사람이 아니기 때문에 무작위 프로그램을 사지 않을 것입니다. 난 단지 하나의 큰 데이터 일괄 처리가 필요합니다

답변

1

IDAutomationHC39M이라는 사용하기 쉬운이 멋쟁이 글꼴은 사용하기가 쉽지만 제한이 있습니다. 그러나 바코드 형식으로 텍스트를 씁니다. 그처럼 간단합니다. 아무 생각조차. Barcode Font

2

나는 비슷한 문제를 직접 발견했습니다. reportlab 및 pyPdf와 함께 python을 사용하면 바코드 (문자열 태그 포함)를 pdf 템플릿에 배치 할 수 있습니다.

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 

이 블록이 작업을 수행하는 파이썬에 필요한 모든 수입을 나타내는 다음은 파이썬 코드 내 gitlab의 REPO에 대한 링크입니다.

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 and Nico.

+1

향후 독자는 링크가 영원히 머물러있을 수 없으므로 답안의 링크로 코드를 요약하십시오. (예 : github를 삭제 한 경우이 답변이 마음에 들지 않습니다.) – Amicable

+0

감사합니다. Amicable 님, Nico 님이 주제에 대한 20000 단어 에세이를 작성하지 않고 내 코드를 요약하는 방법을 알아 내려고했습니다. 포인트가 찍히고, 귀하의 의견에 감사드립니다. – glokem

관련 문제