使用13位数生成带有TCPDF的PDF417时出错

时间:2013-10-02 13:14:43

标签: php barcode tcpdf pdf417

嗯,我使用TCPDF(TCPDF-Website)生成带有PHP的2D条形码(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个数字的每个字符串都不起作用 - 无论字符串有多长。

你知道我对“奇怪”的意思吗?

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

这些条形码的图书馆(谷歌/ TCPDF)不喜欢超过12的数字,所以它肯定很奇怪,但也许我错过了很容易看到的东西。

谢谢,希望这有助于某人。