Добавление штрих-кодов в PDF-файлы - PullRequest
2 голосов
/ 13 июня 2010

есть ли способ сделать что-то вроде почтового слияния, где данные (длиной 9-15 символов) преобразуются в штрих-код?Я использую попытку использовать код openoffice128 для calc, но по какой-то причине каждые 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, я не собираюсь покупать случайные программы.мне просто нужно это сделать для одной большой партии данных

Ответы [ 2 ]

2 голосов
/ 25 марта 2014

Я сам сталкивался с подобной проблемой. Используя 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 за предоставленную здесь замечательную платформу!

Edit: Код добавлен для ясности: спасибо Amicable и Nico.

1 голос
/ 13 июня 2010

Есть этот удобный шрифт Dandy под названием IDAutomationHC39M, который можно использовать бесплатно - ну, есть ограничения - но он пишет текст в формате штрих-кода.Просто как тот.Ежу понятно. Шрифт штрих-кода

...