QRcode и BarQRCode itextpdf - PullRequest
       46

QRcode и BarQRCode itextpdf

0 голосов
/ 14 декабря 2018

Мне нужно создать qrcode, следуя некоторым техническим характеристикам, таким как: версия символа qrcode (), modules (), ширина модулей (), уровень ECC () и набор символов ().Я должен использовать библиотеку itextpdf , и то, что я получаю, должно стать и awt.Image .

Я пытался использовать оба QRCode и BarcodeQRCode .С помощью QRCode я устанавливаю версию символа, модули, ширину модулей и уровень ECC.Затем с помощью BarcodeQRCode я устанавливаю набор символов и могу получить awt.Image.

Проблема в том, что я не могу передать QRCode в BarcodeQRCode.Знаете ли вы, как решить эту проблему и получить полный qrcode / образ с помощью этой библиотеки?

Это мой код:

       StringBuffer sb = new StringBuffer ();
    sb.append ( QRCODE_IDENTIFICATIVO );
    // other lines with the content of qrcode

    QRCode qrCode = new QRCode ();
    qrCode.setVersion ( versione );
    qrCode.at ( modulesWidth, modulesHeight );
    qrCode.setMatrixWidth ( modulesWidth );
    qrCode.setECLevel ( ErrorCorrectionLevel.M );

    Map<EncodeHintType, Object> qrParam = new HashMap<EncodeHintType, Object> ();
    qrParam.put ( EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M );
    qrParam.put ( EncodeHintType.CHARACTER_SET, "UTF-8" );

    BarcodeQRCode qrcode = new BarcodeQRCode ( sb.toString (), (int) mmToPt ( 30f ), (int) mmToPt ( 30f ), qrParam );
    return qrcode.createAwtImage ( Color.BLACK, Color.WHITE );

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Я понял, как решить проблему.Версия 4 - это версия с 33 модулями (или с шириной модулей = 33).Поэтому, когда штрих-код инициализируется, второй и третий параметры устанавливают количество модулей и, следовательно, версию и ширину модуля.При этом EncodeHintType содержит информацию о персонаже и исправлении ошибок.Таким образом, вся информация используется без использования QR-кода.Это:

 StringBuffer sb = new StringBuffer ();
sb.append ( QRCODE_IDENTIFICATIVO );
// other lines with the content of qrcode

Map<EncodeHintType, Object> qrParam = new HashMap<EncodeHintType, Object> ();
qrParam.put ( EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M );
qrParam.put ( EncodeHintType.CHARACTER_SET, "UTF-8" );

BarcodeQRCode qrcode = new BarcodeQRCode ( sb.toString (), 33, 33, qrParam );
return qrcode.createAwtImage ( Color.BLACK, Color.WHITE );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...