Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top