Pull to refresh

Генерирование штрихового кода

Недавно наша газета наконец получила ISSN – индивидуальный идентификатор серийного издания. Для входа в сети розничной продажи также необходим штрих-код. Самый правильный способ получить штрих-код для газеты — это генерация последнего на основе ISSN. Штрих-коды эти соответствуют стандарту EAN-13, и он остается неизменным для каждого номера. Для кодирования номера выпуска используется добавочный штрих-код по стандарту EAN-5(Addon5).
Вместе с полученным ISSN, мы получили и архив с готовыми штрих-кодами в формате EPS. Одна беда — внутри EPS-а лежал обычный растр.
Штрих-код, который получили по почте. Растр.
Наш дизайнер, посмотрев на расклад, завил, что эти штрих-коды ему не нравятся, он хочет вектор, да и вообще, по высоте они довольно большие. На мои заявления, что высота такая, какая и должна быть он показал с десяток других газет, где штрих-код по высоте был намного ниже. После этого и начались мои поиски по приемлемому решению для генерирования штрих-кодов самостоятельно.

Программ для генерирования под Виндоус оказалось в достатке. Бесплатных — оказалось довольно мало. Бесплатных, для того, чтобы верстальщица в такой программе смогла генерировать штрих-коды без посторонней помощи я не нашел ни одной. Под Линукс таких программ несколько — например Kbarcode, но о самостоятельности верстальщицы говорить уже не придется. Есть также онлай-сервисы. Именно на последнем я и заметил ссылку, на Barcode Writer in Pure PostScript.
Barcode Writer in Pure PostScript – это PostScript файл, минимально изменяя содержимое которого, мы получаем нормальный векторный штрих-код. Файл научен переваривать довольно много стандартов штрих-кодов, а главное для меня — он знает про EAN-13, и автоматом генерирует добавочный EAN-5, если его попросить. Также можно использовать некоторые дополнительные параметры, например для изменения высоты штрих-кода.
После скачивания, внутри архива можно обнаружить несколько файлов. Для того, чтобы сразу убедиться в работоспособности вы можете открыть barcode_with_sample.ps.
Внутри вы увидите примерно следующее:
Сэмпл
Теперь, давайте генерировать свой штрих-код. Для этого открываем barcode.ps, и в самом низу просто пишем строку:

20 20 moveto (9772074210005 09075) (includetext guardwhitespace height=0.8) ean13

«9772074210005» — это данные с вашего штрих-кода EAN-13, 09075 – в моем случае: «09» — год, «075» — номер выспуска; также, если нужны цифры под штрих-кодом, то оставляем «includetext», если нужен маркер '>', то оставляем и «guardwhitespace», высота — «height»(Кэп не дремлет), в данном случае 80% от стандартной высоты, и ean13 – стандарт, в котором генерируется штрих-код.
Как генерировать штрих-коды в остальных стандартах, можно посмотреть в barcode_with_sample.ps.

О точность алгоритма генерирования, я думаю, говорит заявление на сайте разработчика, о том, что:
Barcode Writer in Pure Postscript is an award-winning open source barcode maker, as used by NASA

Все довольно просто, а главное — бесплатно, и распространяется пол лицензии MIT.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.