2

我使用 ZXing 3.2 java lib,我需要生成一个 16 * 48 单元格(高度为 16 个单元格,宽度为 48 个单元格)的矩形数据矩阵。

我没有办法做到这一点。有谁知道如何做到这一点?

片段示例:

Hashtable<EncodeHintType,Object> hints=null;
hints=new Hashtable<EncodeHintType,Object>(1);
hints.put(EncodeHintType.DATA_MATRIX_SHAPE,SymbolShapeHint.FORCE_RECTANGLE);

MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix         result = writer.encode("50 digits",format,48,16,hints);

结果是具有 16 个高度单元格和 35 个重量单元格的数据矩阵。更改编码函数中的宽度对结果没有影响。高度始终设置为 16 个单元格。

感谢您的时间

4

1 回答 1

0

一种方法是用空格填充数据到所需的长度(例如,70 个字符给出一个很好的 16*48 模式)。

然而,这将导致最小的纠错,因为所有可用空间都将被数据填充。

更好的方法是强制执行MIN_SIZE,因为Data Matrix 不推荐使用MAX_SIZE这些方法:

hints.put(EncodeHintType.MIN_SIZE, new Dimension(48, 16));
hints.put(EncodeHintType.MAX_SIZE, new Dimension(48, 16));
于 2016-06-30T13:44:04.100 回答