TCPDF QR码始终不同

时间:2010-08-26 00:42:57

标签: cakephp pdf qr-code tcpdf

我在CakePHP 1.3中安装了TCPDF,并使用它来生成QR码的PDF。这是一个非常简单的功能,可以创建一个A9大小的页面,两个字符串和一个QR码。 QR码用于简单的URL(即'example.com/12345')。

我可以在浏览器中加载页面(Safari使用它内置的PDF阅读器。)每次重新加载时,QR码都会略有变化。模块尺寸相同,但数据元素发生了显着变化。我正在使用“L”数据冗余设置。每个调用的字符串完全相同,但QR更改。在观看了一些重载之后,我相信它只会经历3或4次变换。

现在这是非常棒的部分,它可以正确扫描。 QR的每个排列都会导致QR阅读器中的网址完全相同(iPhone4上的i-Nigma)

有什么想法吗?我做的还是遗失了一些非常愚蠢和明显的东西?提前谢谢!

2 个答案:

答案 0 :(得分:4)

似乎TCPDF使用的QR码生成库使用稍微“懒惰”的方法来创建QR码。它从8个'掩码'模式中的任何一个中随机选择,看它是否使代码更好。如果它符合某个标准,它使用随机选择的掩码。这导致每次可能有不同的QR码。

显然,Google使用更好的算法来选择遮罩。可能会检查所有面具并选择最佳面具。这将导致可预测的结果,而不是随机选择的结果。

我将调用Google Chart API来检索PNG,然后将其放在我的PDF中,而不是使用内置的QR生成器。

答案 1 :(得分:0)

在tcpdf版本6.2.26上,运行正常的一种解决方案是在文件“ include / barcodes / qrcode.php”中更改239行: define('QR_FIND_FROM_RANDOM',2);

并用下一个替换: define('QR_FIND_FROM_RANDOM',none);