Jasper Reports-Создание Пользовательских Штрих-Кодов

библиотеки/инструменты, используемые: 1) Отчеты Jasper 2) iReport 3) Java

Я уже создал несколько стандартных штрих-кодов для моих отчетов, но на этот раз я пытаюсь создать пользовательский штрих-код, для которого у меня есть пользовательский штрих-код файла шрифта.ТЦФ. На данный момент iReport поддерживает 2 библиотеки штрих - кодов-Barcode4j и Barbecue, которые не поддерживают пользовательский штрих-код, который мне нужен. Любые идеи для начала, без особых накладных расходов на использование новой библиотеки (я использую Barcode4j уже)?

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

2 ответов


просто попробовал ответ @mdahlman, и это сработало. Я сгенерировал значение "CODE123" с помощью шрифт barcode39 (бесплатно) и барбекю Jaspersoft. Sample Barcode

установка размера не очень проста с помощью шрифта, но результат тот же. Я проверил штрих-код с помощью сканера штрих-кода на моем телефоне Android (вижу, что он визуально похож). Почему это сработало для меня, наверное же причине @bchetty тест не работает, потому что Barcode39 нет контрольная цифра. Это перевод 1-к-1, за исключением ведущей и конечной звездочки ( * ), добавленной к данным. Если вы хотите использовать ttf для создания типа штрих-кода с контрольной цифрой, вам понадобится функция (внешний jar, как вы упомянули) для его кодирования. Barcode39 не нуждается в функции, так как это просто "*" + V${data} + "*".


учитывая, что у вас есть обычай-штрих-код.ttf, его действительно можно рассматривать как текст. Итак, ваши шаги таковы:

  1. создайте расширение шрифта в iReport для пользовательского штрих-кода.ТЦФ.
  2. создать текстовое поле в отчете с соответствующим выражением.
  3. установите шрифт для текстового поля в "пользовательский штрих-код" (или как вы называете расширение шрифта). Играть с размером шрифта, чтобы получить желаемый результат.

использование пользовательского шрифта для штрих-кода можно считать хаком. Но недостаток гибкости он компенсирует простотой.