Форматирование EAN8 с помощью zxing/barcode4j

Я пытаюсь сгенерировать EAN8-штрих-код в Java. Если попытался barcode4j (который является бесплатным в отличие от barcodelib), который дает мне действительно хорошие результаты.

Одна вещь, которую я не понял, это изменить ширину и высоту штрих-кода в barocde4j. Я решил это параметром разрешения, что не очень хорошее решение.

То, что я хочу сделать, это генерировать что-либо в zxing (потому что мне также нужен QR-код), но результат выглядит довольно некрасиво. Вот как я генерирую штрих-код:

BitMatrix matrix;
com.google.zxing.Writer writer = new EAN8Writer();
com.google.zxing.BarcodeFormat BarcodeFormat;
matrix = writer.encode(code,BarcodeFormat, width, height);
MatrixToImageWriter.writeToStream(matrix, "JPG", output);

Картинка выглядит как ZXING

ZXing

Но я бы хотел, чтобы это выглядело так, как это делает barcode4j:

barcode4j

С уважением && Tia Noircc

1 ответ

Решение

На Barcode4J: вы можете только косвенно контролировать размер штрих-кода. Если вы генерируете штрих-коды с помощью метода bean, у вас есть setHeight(double) и setModuleWidth(double), чтобы влиять на размер:

EAN8Bean Javadoc

С конфигурацией XML вы можете найти возможные значения здесь.

И кстати, я настоятельно рекомендую НЕ генерировать JPEG для штрих-кода, потому что это формат с потерями, который может влиять на контраст, а штрих-коды живут вне контраста. Используйте вместо PNG! Кроме того, вы можете прочитать страницу устранения неполадок, поскольку вы генерируете растровые изображения. Это может помочь избежать проблем со сканированием позже.

Другие вопросы по тегам