Статьи

API Java Barcode

Первоначально штрих-коды были одномерным представлением данных с использованием ширины и расстояния между столбцами. Распространенными типами штрих-кодов являются штрих-коды UPC, которые встречаются на упаковках продуктов. Есть также 2D штрих-коды (они все еще называются штрих-кодами, даже если они не используют бары). Типичным примером 2D штрих-кода является QR-код (показан справа), который обычно используется приложениями для мобильных телефонов. Вы можете прочитать историю и больше информации о штрих-кодах в Википедии .

Существует библиотека Java с открытым исходным кодом, называемая zxing (Zebra Crossing), которая может считывать и записывать различные типы форматов штрих-кодов. Я протестировал zxing, и он смог прочитать штрих-код, встроенный в середину занятого текстового документа с оттенками серого 100 dpi!

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

Получение библиотеки

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

Исходный код библиотеки доступен в Google Code . На момент написания статьи 1.6 является последней версией zxing.

1. Загрузите файл релиза ZXing-1.6.zip (который содержит в основном исходные файлы) отсюда .
2. Распакуйте файл в локальный каталог.
3. Вам нужно будет собрать 2 файла jar из загруженного источника: core.jar, javase.jar.

Здание core.jar

 cd zxing-1.6/core 
mvn install

Это установит банку в вашем местном репозитории Maven. Хотя это и не обязательно, вы также можете развернуть его в частном репозитории вашей компании, используя mvn: deploy или вручную загрузив его в репозиторий maven.

Существует также скрипт для сборки фляги.

Здание javase.jar

Повторите ту же процедуру, чтобы получить javase.jar

   cd zxing-1.6/javase 
   mvn install

Включение библиотек в ваш проект

Если вы используете ant, добавьте core.jar и javase.jar в путь к классам вашего проекта.

Если вы используете maven, добавьте следующее в ваш pom.xml.

<dependencies>
 <dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>core</artifactId>
  <version>1.6-SNAPSHOT</version>
 </dependency>

 <dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>1.6-SNAPSHOT</version>
 </dependency>
<dependencies> 

После того, как файлы jar включены в classpath вашего проекта, вы готовы читать и писать штрих-коды из Java!

Чтение штрих-кода с Java

Вы можете прочитать штрих-код, сначала загрузив изображение в качестве входного потока, а затем вызвав этот метод утилиты.

InputStream barCodeInputStream = new FileInputStream("file.jpg");
BufferedImage barCodeBufferedImage = ImageIO.read(barCodeInputStream);

LuminanceSource source = new BufferedImageLuminanceSource(barCodeBufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
Result result = reader.decode(bitmap);

System.out.println("Barcode text is " + result.getText());

Написание штрих-кода с Java

Вы можете закодировать небольшую текстовую строку следующим образом:

String text = "98376373783"; // this is the text that we want to encode

int width = 400;
int height = 300; // change the height and width as per your requirement

// (ImageIO.getWriterFormatNames() returns a list of supported formats)
String imageFormat = "png"; // could be "gif", "tiff", "jpeg" 

BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, width, height);
MatrixToImageWriter.writeToStream(bitMatrix, imageFormat, new FileOutputStream(new File("qrcode_97802017507991.png")));

В приведенном выше примере штрих-код для «97802017507991» записывается в файл « qrcode_97802017507991.png » (щелкните, чтобы просмотреть выходные данные).

JavaDocs и документация

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

ZXing-1,6 / Docs / Javadoc / index.html

С http://www.vineetmanohar.com/2010/09/java-barcode-api/