java – iText datamatrix生成问题
发布时间:2020-12-15 04:50:46 所属栏目:Java 来源:网络整理
导读:我试图从itext内生成datamatrix条形码.这适用于我的大多数代码,但不适用于某些代码.一个例子是: HEnSh0701003-2V1 由于某种原因,这会产生非方形条形码.当我使用其他公司的编码器(例如IDAutomation)时,我会得到一个有效的方形条形码. 有谁知道为什么会这样?
我试图从itext内生成datamatrix条形码.这适用于我的大多数代码,但不适用于某些代码.一个例子是:
由于某种原因,这会产生非方形条形码.当我使用其他公司的编码器(例如IDAutomation)时,我会得到一个有效的方形条形码. 有谁知道为什么会这样?我正在寻找一个解决方案,所以我可以使用嵌入式iTest DataMatrix类,而不必使用第三方类. 我正在使用的代码示例: BarcodeDatamatrix bar = new BarcodeDatamatrix(); bar.setOptions(BarcodeDatamatrix.DM_AUTO); bar.generate("HEnSh0701003-2V1"); bcd.addCell(bar.createImage()); 其中bcd是具有2列的PdfTable. 解决方法
我遇到了这个问题.我最后深入研究iText源代码来解决这个问题. iText正在调整条形码的大小以适合您提供的文本.
iText支持datamatrix条形码的以下大小: 如您所见,那里有许多非方形尺寸.我所做的是创建一个方形条码大小列表,然后在检查generate()调用的返回值时尝试每个大小. // supported square barcode dimensions int[] barcodeDimensions = {10,12,14,16,18,20,22,24,26,32,36,40,44,48,52,64,72,80,88,96,104,120,132,144}; BarcodeDatamatrix barcode = new BarcodeDatamatrix(); barcode.setOptions(BarcodeDatamatrix.DM_AUTO); // try to generate the barcode,resizing as needed. for (int generateCount = 0; generateCount < barcodeDimensions.length; generateCount++) { barcode.setWidth(barcodeDimensions[generateCount]); barcode.setHeight(barcodeDimensions[generateCount]); int returnResult = barcode.generate(text); if (returnResult == BarcodeDatamatrix.DM_NO_ERROR) { return barcode.createImage(); } } throw new Exception("Error generating barcode."); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |