iText 8.0.4 Data Matrix条码自动编码大小写翻转问题反馈
iText 8.0.4 Data Matrix AUTO编码模式字符大小写翻转异常
问题概述
使用iText 8.0.4生成Data Matrix条码时,采用AUTO编码模式会出现部分字符大小写翻转(大写转小写、小写转大写)的异常;强制指定ASCII编码则无此问题。
扫描结果对比
- 正确扫描结果(强制ASCII编码):
1nPUrEG_8vbghysdOMTV_FpO67pLVFuhq0nizXJ-Nfzyz4VxR0cLz9581IeQL5LTT0QpVcaaUJI=
- 错误扫描结果(AUTO编码模式):
1nPUrEG_8vbghysdOMTV_FpO67pLVFuhq0nizXJ-Nfzyz4VxR0clZ9581iEql5ltt0qpVcaaUJI=
复现代码
package com.vic.barcodetest; import com.itextpdf.barcodes.BarcodeDataMatrix; import static com.itextpdf.barcodes.BarcodeDataMatrix.DM_ASCII; import com.itextpdf.kernel.geom.PageSize; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Image; import com.itextpdf.layout.element.Paragraph; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; public class BarcodeTest { public static void main(String[] args) { try { File testFile = File.createTempFile("test", ".pdf"); PdfDocument testPdf = new PdfDocument(new PdfWriter(testFile)); Document testDoc = new Document(testPdf, PageSize.LETTER); final String barcodeData = "1nPUrEG_8vbghysdOMTV_FpO67pLVFuhq0nizXJ-Nfzyz4VxR0cLz9581IeQL5LTT0QpVcaaUJI="; BarcodeDataMatrix bdm1 = new BarcodeDataMatrix(); bdm1.setOptions(DM_ASCII); bdm1.setCode(barcodeData); Image i1 = new Image(bdm1.createFormXObject(testPdf)); i1.scale(5.0F, 5.0F); testDoc.add(i1); testDoc.add(new Paragraph("Correct")); BarcodeDataMatrix bdm2 = new BarcodeDataMatrix(); bdm2.setCode(barcodeData); Image i2 = new Image(bdm2.createFormXObject(testPdf)); i2.scale(5.0F, 5.0F); testDoc.add(i2); testDoc.add(new Paragraph("Incorrect")); testDoc.add(new Paragraph(barcodeData)); testDoc.close(); testPdf.close(); System.out.println("Wrote " + testFile.getAbsolutePath()); } catch(FileNotFoundException e) { System.out.println(e.getMessage()); e.printStackTrace(); } catch(IOException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }
临时解决方案
通过强制指定ASCII编码(bdm.setOptions(DM_ASCII))可规避该问题。
诉求
尚未深入排查问题根源,希望官方能对该问题进行调查并修复。
内容的提问来源于stack exchange,提问作者user25413158
相关产品推荐
相关产品推荐

