Ошибка создания PDF417 с TCPDF с использованием 13 цифр

ну, у меня очень странная проблема с генерацией 2D-штрих-кодов (PDF417) с помощью PHP с использованием TCPDF (TCPDF-Website) . Это мой небольшой код:

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

Этот код хорошо работает и генерирует штрих-код. Но когда я меняю строку с кодом в

$code="1234567890123";

он не производит никакого вывода. Я попробовал несколько строк и обнаружил, что каждый раз, когда я пытаюсь использовать строку с более чем 12 цифрами, следующими одна за другой, я не получаю вывода. Это не зависит от того, в какой позиции были цифры.

Например:

$code="abcdefghijklmnopqrstuvwxyz123456789012abcdefghijklmnopqrstuvwxyz";

работает Finde, но

$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 числами подряд не работает - независимо от длины строки.

Вы понимаете, что я имею в виду под словом "странный"?

Любая помощь будет высоко ценится.


person user2198449    schedule 02.10.2013    source источник


Ответы (1)


У меня тоже была эта проблема. Мы используем штрих-коды PDF417 и QR Code. Я не нашел для этого отличного решения, но нашел решение, которое работает на данный момент. Если у кого-то есть решение получше, посоветуйте, пожалуйста.

Проблема: в наших штрих-кодах хранятся номера телефонов, которые иногда состоят из 13 цифр и более. Из-за 13-значного телефонного номера штрих-код не печатался правильно.

Решение: так как штрих-код не будет печататься из-за этого, мы просто добавляем пробел каждые 10 цифр, и это сохраняет штрих-код нетронутым, и наше программное обеспечение может считывать номер телефона без пробелов, поэтому мы должны быть в порядке. !

Пример номера телефона:
123456789012345 (15 цифр)

Код PHP для запуска на номере телефона:
$ phone = chunk_split ($ phone, 10, '');

Пример номера телефона после разделения:
1234567890 12345

Библиотеки для этих штрих-кодов (Google / TCPDF) не любят числа длиннее 12, так что это определенно странно, но, возможно, мне не хватает чего-то легко заметного.

Спасибо и надеюсь, что это кому-то поможет.

person gishua    schedule 15.03.2017