TCPDF QR код постоянно отличается - PullRequest
5 голосов
/ 26 августа 2010

Я установил TCPDF в CakePHP 1.3 и использую его для создания PDF-кода QR-кода.Это очень простая функция, которая создает страницу размером A9, две строки и один QR-код.QR-код предназначен для простого URL-адреса (т. Е. 'Example.com/12345').

. Я могу загрузить страницу в браузере (Safari, используя встроенную программу чтения PDF-файлов), и каждый раз перезагружать ее., QR-код меняется незначительно.Размеры модуля такие же, но элементы данных значительно меняются.Я использую настройку избыточности данных «L».Строка в точности совпадает с каждым вызовом, но QR меняется.После просмотра нескольких перезагрузок, я считаю, что он перебирает только 3 или 4 варианта.

Теперь вот действительно замечательная часть, она сканирует правильно.Каждая перестановка QR приводит к тому же URL в QR Reader (i-Nigma на iPhone4)

Есть идеи?Я делаю или упускаю что-то действительно глупое и очевидное?Заранее спасибо!

1 Ответ

4 голосов
/ 27 августа 2010

Кажется, что библиотека создания QR-кода, используемая TCPDF, использует слегка «ленивый» метод создания QR-кода.Он случайным образом выбирает любой из 8 шаблонов «маски», чтобы увидеть, улучшит ли он код.Если он соответствует определенным критериям, он использует случайно выбранную маску.Это приводит к тому, что каждый раз могут появляться разные QR-коды.

Очевидно, Google использует лучший алгоритм для выбора маски.Вероятно, проверяет все маски и выбирает лучшую.Это привело бы к предсказуемому результату вместо случайно выбранного.

Я собираюсь позвонить в Google Chart API, чтобы получить PNG, а затем поместить его в мой PDF вместо использования встроенного генератора QR.

...