我需要创建一个可以创建DataMatrix 2D条形码的Java程序。我正在使用zxing
在我的情况下,数据矩阵的内容由一个字符串构成,我有2个XML,一个没有数字签名,另一个没有数字签名,但是我遇到了一些问题。
如果我运行以下代码,一切工作都很好(在String testo
中,您可以找到2个没有经过数字签名的XML):
“
String testo = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><infoPack xmlns=\"http://www.digitpa.gov.it/infoPack1.0\"><box id=\"id9ceba69c-f1de-4abb-ab70-bcb21921c984\"><content type=\"pdf\" mime=\"application/pdf\"/><signature typeSign=\"CAdES\" iri=\"http://www.iriinfopack.it\"/></box></infoPack><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><infoPack xmlns=\"http://www.digitpa.gov.it/infoPack1.0\"><box id=\"id9ceba69c-f1de-4abb-ab70-bcb21921c984\"><content type=\"pdf\" mime=\"application/pdf\"/><signature typeSign=\"CAdES\" iri=\"http://www.iriinfopack.it\"/></box></infoPack>"
int sizePixels = 200;
Map<EncodeHintType, Object> hints = new EnumMap<>(EncodeHintType.class);
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
hints.put(EncodeHintType.ERROR_CORRECTION, "H");
DataMatrixWriter writerDM = new DataMatrixWriter();
bitMatrix = writerDM.encode(testo, BarcodeFormat.DATA_MATRIX, sizePixels, sizePixels, hints);
”
使用相同的代码如果我对infoPack部分进行数字签名,则会遇到异常。这是异常堆栈跟踪:
2018-09-27 09:41:57,774 44802 [main] ERROR i.e.t.a.t.d.s.test.QRDatamatrixTest - Errore
java.lang.IllegalArgumentException: Can't find a symbol arrangement that matches the message. Data codewords: 2922
at com.google.zxing.datamatrix.encoder.SymbolInfo.lookup(SymbolInfo.java:148)
关于如何解决此问题的阿比建议
谢谢
天使