3

好吧,我有一个非常奇怪的问题,使用 TCPDF( TCPDF-Website )用 PHP 生成二维条码(PDF417 )。这是我的小代码:

<?php
require_once ("tcpdf/tcpdf_barcodes_2d.php");
$type = "PDF417";
$code="123456789012";
$barcodeobj = new TCPDF2DBarcode($code, $type);
$barcodeobj->getBarcodePNG();
?>

此代码运行良好并生成条形码。但是当我用代码更改行时

$code="1234567890123";

它不会产生任何输出。我尝试了几个字符串并发现,每次我尝试使用一个一个接一个超过 12 位的字符串时,我都没有得到任何输出。它不取决于数字的位置。

例如:

$code="abcdefghijklmnopqrstuvwxyz123456789012abcdefghijklmnopqrstuvwxyz";

可以找到,但是

$code="abcdefghijklmnopqrstuvwxyz1234567890123abcdefghijklmnopqrstuvwxyz";

失败。

我使用 tcpdf 6.0.037 并且还尝试从另一个来源下载它。我什至尝试过版本 6.0.020 - 没有变化。服务器是 openSuSE 12.2 64bit , PHP 5.3.15

编辑:这真的很奇怪:我尝试了另一个条形码生成器 - 我得到了同样的错误。这个提供了一个在线演示。当我在线填写1234567890123时,我得到了合适的条形码。但是在我自己的服务器上,相同的字符串不起作用。

"123456-7890123" works
"1234567890123" does not work
"123456789012" works
"12e34567890123" works
"123456789012sometext123456789012" works
"123456789012sometext1234567890123" does not work

每个连续超过 12 个数字的字符串都不起作用 - 无论字符串有多长。

你明白我所说的“奇怪”是什么意思吗?

任何帮助将不胜感激。

4

1 回答 1

2

我也有这个问题。我们正在使用 PDF417 和 QR 码条形码。我还没有找到一个很好的解决方案,但我找到了一个现在有效的解决方案。如果有人有更好的解决方案,请指教。

问题: 在我们的条形码中,我们存储了电话号码,有时它们是 13 位或更长的数字。13 位电话号码导致条形码无法正确打印。

解决方案: 由于条形码因此无法打印,我们只需每 10 位添加一个空格,这样可以保持条形码完整,并且我们的软件可以读取电话号码而没有空格,所以我们应该是 A-OK!

示例电话号码:
123456789012345(15 位)

在电话号码上运行的 PHP 代码:
$phone = chunk_split($phone, 10, ' ');

拆分后的示例电话号码:
1234567890 12345

这些条形码的库(Google/TCPPDF)不喜欢超过 12 的数字,所以这肯定很奇怪,但也许我错过了一些容易看到的东西。

谢谢,希望这对某人有所帮助。

于 2017-03-15T18:57:58.037 回答