Java печать этикеток со штрих-кодом - PullRequest
2 голосов
/ 20 августа 2009

Может кто-нибудь указать направление записи для печати этикеток со штрих-кодом с использованием Java? Я могу использовать библиотеку барбекю (http://barbecue.sourceforge.net/), чтобы генерировать их штрих-коды как изображения, но мне нужен способ поместить изображение (и удобочитаемую подпись) в шаблон документа Avery для печати. ​​

Ответы [ 6 ]

3 голосов
/ 14 июня 2012

Я предлагаю использовать библиотеку barcode4j вместо барбекю по двум причинам:

  1. Объекты со штрих-кодом для барбекю излишне связаны с компонентами пользовательского интерфейса Java (например, класс штрих-кода расширяет JComponent). Это создает ненужные зависимости, если пользовательский интерфейс Java не используется, например, для пакетных или командной строки приложений. Они должны были использовать агрегацию, а не наследование, если хотели использовать свои классы штрих-кода с пользовательским интерфейсом Java.

  2. Похоже, что Barcode4J поддерживается в настоящее время - выпущена версия 2.0, дата авторского права - 2012

Тогда у вас возникла проблема с переводом штрих-кода в формат, понятный вашему принтеру. Для этого я предлагаю openlabelprint.org (который я написал!) - это еще один проект с открытым исходным кодом, который использует barcode4j и предоставляет:

  • средства для определения макета метки с использованием SVG (Scalable Vector Graphics - открытый стандарт w3c) и

  • растеризация в растровое изображение SVG из barcode4j (и окружающее расположение меток в SVG) (openlabelprint применяет превосходные Java-библиотеки Apache SVG Batik для растеризации, а также для других задач SVG)

  • печать растрового изображения на принтерах Zebra с использованием низкоуровневого языка ZPL. openlabelprint имеет встроенную утилиту для преобразования растровых изображений png в ZPL и отправки их на принтер Zebra через стандартную систему принтера Java. Также openlabelprint предоставляет API-интерфейсы для расширения его на другие языки принтеров, хотя ZPL поддерживается некоторыми брендами, отличными от Zebra

3 голосов
/ 16 октября 2009

Библиотека iText поддерживает практически все возможные штрих-коды. Вы можете создавать PDF-файлы и сохранять их или распечатывать их внутри.

2 голосов
/ 29 сентября 2009

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

Это может быть или не быть полезным для вас, но я подумал, что упомяну это.

1 голос
/ 20 августа 2009

Я думаю, что вам придется измерить свою страницу этикетки Avery с помощью линейки, а затем в своем коде Java вам нужно будет создать полную страницу Letter / A4 / любую другую страницу для печати и смещения изображения штрих-кода на этой странице с соответствующим местоположение на основе ваших измерений с линейкой.

0 голосов
/ 06 сентября 2012

Вы должны попробовать JZebra, это апплет и хорошая отправная точка для вас, взгляните на исходный код Java.

http://code.google.com/p/jzebra/

Для зебры вам поможет это простое руководство. На этой зебре команды

N
q609
Q203,26
B26,26,0,UA0,2,2,152,B,"777777"
A253,56,0,3,1,1,N,"JHON3:16"
A253,26,0,3,1,1,N,"JESUSLOVESYOU"
A253,86,0,3,1,1,N,"TEST TEST TEST"
A253,116,0,3,1,1,N,"ANOTHER TEST"
A253,146,0,3,1,1,N,"SOME LETTERS"
P1,1

на JZebra

     var applet = document.jzebra;
     if (applet != null) {
applet.append("N\n");
applet.append("q609\n");
applet.append("Q203,26\n");
 applet.append("B26,26,0,UA0,2,2,152,B,\"777777\"\n");
applet.append("A253,56,0,3,1,1,N,\"JHON3:16\"\n");
applet.append("A253,26,0,3,1,1,N,\"JESUSLOVESYOU\"\n");
applet.append("A253,86,0,3,1,1,N,\"TEST TEST TEST\"\n");
applet.append("A253,116,0,3,1,1,N,\"ANOTHER TEST\"\n");
applet.append("A253,146,0,3,1,1,N,\"SOME LETTERS\"\n");
applet.append("P1,1\n");}

Поняв это:

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

  1. Отправка начального символа новой строки гарантирует, что любой предыдущий загружен Команда отправлена.
  2. [N] Очистить буфер изображения. Это важный шаг и как правило, должна быть первой командой в любом документе EPL; кто знает, в каком состоянии осталось предыдущее задание принтера.
  3. [q] Установите ширину этикетки до 609 точек (3-дюймовая этикетка x 203 точек на дюйм = Ширина 609 точек).
  4. [Q] Установите высоту этикетки до 203 точек (1-дюймовая этикетка) с помощью 26 точка разрыва между метками. (Принтер, вероятно, будет автоматически смысл, но это не больно.)
  5. [B] Нарисуйте штрих-код UPC-A со значением "777777" в x = 26 точек (1/8 дюйма), y = 26 точек (1/8 дюйма) с узкой полосой шириной 2 точки и высотой 152 точки (3/4 дюйма). (The источником метки системы координат является левый верхний угол этикетки.)
  6. [A] Нарисуйте текст "JESUSLOVESYOU" в x = 253 точки (3/4 дюйма), y = 26 точек (1/8 дюйма) шрифт принтера «3», нормальное горизонтальное и вертикальное масштабирование, и никакого необычного эффекта белого на черном.

Все стартовые линии A похожи. 10. [P] Распечатайте одну копию одной этикетки.

0 голосов
/ 20 августа 2009

Вы пытались напечатать изображение, которое вы получили от "барбекю"?

...