Генерация матрицы данных ECC200 в переполнении стека

Кто-нибудь имел опыт создания 2D штрих-кодов для Royal Mail через PHP? Я потратил некоторое время, пытаясь заставить мои собственные процедуры написать допустимую матрицу данных, к сожалению, безрезультатно.

У меня есть рабочие процедуры преобразования для ASCII в C40 и создатели контрольных сумм Luhn 16, но я просто не могу получить что-либо с графическим представлением или созданием байта ECC200 в этом отношении.

Существуют ли какие-либо предварительно написанные библиотеки с документацией, которые помогут отнять много дальнейшей работы?

Мне нужно иметь возможность генерировать это в серверной среде, без идеального использования внешних сайтов или генерации изображений.

1

Решение

Мы используем Zint Barcode Generator Пакеты Unix для генерации кода QR и PDF417. Royal Mail также поддерживается.
(на CentOS dnf install zint, Ubuntu требует больше работы).

Zint документация: http://www.zint.org.uk/

В PHP используйте system метод, пример:

$targetFilePath = dirname(__FILE__).'/test.png';
$contents = 'ABC123';
system('zint ...params... -o"' . $targetFilePath . '" -d"' . $contents . '"');
var_dump(file_exists($targetFilePath));

Он сгенерирует изображение в запрошенном $ targetFilePath.

1

Другие решения

Для генерации матрицы данных ECC200 в PHP мы успешно использовали:

sudo apt install dmtx-utils

Чтобы вывести файл PNG с сервера, с обычными настройками apache2 вы получите
штрих-код в PNG при вводе в браузере: http://yourserver.com/datamatrix/?in=yourbarcodetext

<?php
ob_start();
$old_path = getcwd();

$infile = "/var/www/html/datamatrix/message2.txt";
$image = "/var/www/html/datamatrix/image.png";

file_put_contents($infile,$_GET["in"]);

$ex = "export HOME=/tmp && /usr/bin/dmtxwrite {$infile} -o {$image}";

echo "<b>$ex</b>";
$output = shell_exec($ex);

echo var_export($output, TRUE);

echo "done";
chdir($old_path);

$im = imagecreatefrompng($image);

ob_end_clean();
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector