我正在与一家公司合作开发API,这需要我们生成PDF417条码。在他们发送给我们的文档中,他们要求我们使用以下设置:
XDim = 0.02
YDim = 0.03
Bar Height = 0.30
Aspect = 0.25
Columns = 16 or 18
Rows = 0
ECC = 4
Containment area is about 1000 X 5000 unit of pixels
根据the tc-lib-barcode library I'm using文档中的唯一示例,这些是我可以使用的参数:
// generate a barcode
$bobj = $barcode->getBarcodeObj(
'QRCODE,H', // barcode type and additional comma-separated parameters
'https://tecnick.com', // data string to encode
-4, // bar width (use absolute or negative value as multiplication factor)
-4, // bar height (use absolute or negative value as multiplication factor)
'black', // foreground color
array(-2, -2, -2, -2) // padding (use absolute or negative values as multiplication factors)
)->setBackgroundColor('white'); // background color
如您所见,公司和tc-lib-barcode使用不同的名称作为参数,或者tc-lib-barcode可能不支持我需要更改的参数。 tc-lib-barcode文档中没有有关“ XDim”,“ YDim”等的内容。因此,我正在尝试将公司的规格映射到tc-lib-barcode文档中的参数。
根据the Wikipedia article on PDF417:
“用户可以决定最窄的垂直条(X尺寸)的宽度以及行的高度(Y尺寸)。”
所以也许XDim
== bar width
?
在\src\Type\Square\PdfFourOneSeven.php
中,我看到:
/**
* Row height respect X dimension of single module
*
* @var int
*/
protected $row_height = 2;
所以我想也许是YDim
== $row_height
。我将$ row_height更改为.03
,但是随后出现错误(Undefined offset: 2
的第85行抛出了\src\Type\Raw.php
)。
我似乎在以错误的方式进行操作,确实可以使用一些帮助。我已经联系了该公司,但他们只是告诉我购买可以产生兼容条形码的2个软件包之一。许可证超出了我们的预算,并且因为PDF417是ISO标准,所以要生产几乎与任何软件包兼容的条形码应该不是不可能的。
我注意到在getBarcodeObj
的第一个参数中,您可以传递“其他逗号分隔的参数”,但是我看不到有关什么参数以及以什么顺序可以传递的任何文档。