Генерация PostScript штрих-кодов (barcode). Часть 2

В первой части я попытался рассказать про библиотеку BWIPP, используемую для генерации штрих-кодов на PostScript. Вторая часть будет посвящена адаптации BWIPP под командную строку, дабы обеспечить более понятный и удобный доступ к библиотеке. Для этого напишем небольшой скрипт на Python 3.

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

bwipp_encoders.py:

Парсер состоит из одной простой функции, которая принимает на вход два параметра: путь до bwipp и путь для сохранения информации по кодам. Руками его запускать не придется, стартовать он будет из головного скрипта, при отсутствии готового файла с описанием.

barcode.py:

Головной скрипт принимает на вход из командной строки информацию о необходимом баркоде, далее собирает необходимые параметры и формирует вывод PostScript’а, который состоит из bwipp и вызова необходимого шаблона-генератора.

Пример создания баркода из первой части, который мы собрали вручную:

Возможно вам не потребуется использовать дополнительные параметры, тогда вызов упрощается до:

Вывод скрипта необходимо перенаправить в нужный нам файл, в противном случае увидите весь PostScript у себя на экране, а это зрелище не из приятных (:

Немного пробегусь по параметрам вызова класса Barcode:

encoder_name — имя баркода (строка);

code — сам код (строка);

more_option — дополнительные опции генератора баркода (строка). Где их взять я писал в первой части;

position — координаты левого нижнего угла баркода, описывает его положение на листе (список). Если вы решите конвертировать PS в ePS, все пустое пространство будет удалено, останется только баркод, поэтому положение особой роли не играет, главное чтоб углы не провалились за границу;

bwipp, header и footer — пути до соответствующих файлов: библиотека BWIPP, шапка для вставки, подвал для вставки (строки);

encoders — путь до файла с описанием кодов — результат работы парсера bwipp_encoders.py (строка). Если по этому пути файл отсутствует, то парсер запустится автоматически и создаст его из BWIPP.

Скрипт делался для работы в shell-скрипте, где по определенным, изменяемым параметрам генерируется баркод.

Буду рад, если данная статья кому-нибудь пригодится.

Ссылки: Zip, GitHub

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *