gpt4 book ai didi

java - iText 数据矩阵生成问题

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:04 26 4
gpt4 key购买 nike

我正在尝试从 itext 中生成数据矩阵条形码。这适用于我的大部分代码,但不适用于某些代码。一个例子是:

HEnSh0701003-2V1

出于某种原因,这会生成非方形条形码。当我使用其他公司(例如 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 支持以下尺寸的数据矩阵条码:10x10, 12x12, 8x18, 14x14, 8x32, 16x16, 12x26, 18x18, 20x20, 12x36, 22x22, 16x36, 24x24, 26x26, 16x48, 32x32, 36x36, 40x40, 44x44, 48x48, 52x52, 64x64, 72x72, 80x80, 88x88, 96x96、104x104、120x120、132x132、144x144

如您所见,其中有许多非正方形尺寸。我所做的是创建一个方形条形码尺寸列表,然后在检查 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.");

关于java - iText 数据矩阵生成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com