Генерация штриховых кодов в Java с помощью Barcode4J

минута на чтение

Для одного проекта мне пришлось разобраться со штрихкодами (или баркодами — кому как нравится). В компании уже был реализован механизм печати документов PDF посредством FOP, мне нужно было добавить в определённый документ эти коды.

Существовало техническое ограничение, код должен быть читаем для ручного лазерного сканера Honeywell Voyager 1200g, что изначально исключило использование двумерных кодов как QR Code и DataMatrix. Кодируемые данные были алфавитно-цифрового типа. Выбор был сделан в пользу Code128, штрихкод варьированной длины, позволяющий кодировать цифровые и буквенные символы (подробней на Википедии).

При поисках генератора штрихкодов я достаточно быстро остановился на Barcode4J. Всё что нужно для использования этой бесплатной библиотеки, это указать её в Classpath и вставить XML-код в нужные места (или же вызывать программно, но в моём случае мне не потребовалось этого делать).

<fo:instream-foreign-object>
 	<barcode:barcode xmlns:barcode="http://barcode4j.krysalis.org/ns" 
                message="{$message}" orientation="0">
 		<barcode:code128>
 			<barcode:height>8mm</barcode:height>
 		</barcode:code128>							
    </barcode:barcode>
</fo:instream-foreign-object>

В примере создаётся штрихкод в формате Code128 высотой 8 миллиметров. Кодируется содержание XSL-переменной $message. Существует параметр modul-width, через который можно задать ширину модуля, если при печати линии сливаются так, что сканер не может различить закодированое сообщение. Для более подробнйо информации смотрите оффициальный сайт Barcode4J.

Code 128

Имя домена cpa-master.com, закодированное в Code 128

Понравился пост? Поделись в соцсетях и подписывайся на аккаунты в Twitter и Facebook!
Facebook Vk Ok LinkedIn Telegram Whatsapp

Похожие записи:

В общем, дело было так: На рабочем компьютере установлено несколько версий Java и по умолчанию используется версия 1.7, то есть, не самая последняя. И после установки среда разработки Android Studio начала ругаться, что требуется более продвинутая версия. Изменить версию Java — задани...
Пару месяцев я не пользовался Eclipse, но на днях мне понадобилось написать несколько строчек кода на Java и я обнаружил, что среда разработки не запускается. Ничего глобального на компьютере я не менял, возможно, установил новую версию Java, не более. Тем не менее, раньше Eclipse работ...
В последнее время помимо других новых для меня вещей я столкнулся с созданием документов PDF в FOP/Java и мне стало интересно, можно ли это сделать в JavaScript и php. В данный момент пытаюсь запустить Tecnickcom tc-lib-pdf. Собрать библиотеку можно с помощью Makefile — это такая древняя утилита для ...