【问题标题】:ECC200 Datamatrix Generation in PHPPHP 中的 ECC200 数据矩阵生成
【发布时间】:2023-03-29 07:24:01
【问题描述】:

有没有人有通过 PHP 为 Royal Mail 生成 2D 条形码的经验?我花了一段时间试图让自己的例程编写一个有效的数据矩阵,遗憾的是无济于事。

我确实有用于 ASCII 到 C40 和 Luhn 16 校验和生成器的工作转换例程,但无法通过图形表示或 ECC200 字节创建获得任何地方。

是否有任何带有文档的预先编写的库可以帮助消除大量进一步的跑腿工作?

我确实需要能够在服务器环境中生成它,而不是理想地使用外部站点来生成图像。

【问题讨论】:

    标签: php datamatrix


    【解决方案1】:

    我们使用Zint Barcode Generator Unix 包来生成 QR 和 PDF417 代码。也支持皇家邮政。 (在 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 上生成一个图像。

    【讨论】:

    • 哦,好消息!感谢 DiceXQ 提供的信息,这看起来比上帝知道我写了多少行要简单得多……有点不成功,重新发明轮子!我会在一两分钟内把它转发到我们的服务器上,再次感谢!将为遇到此困难的其他人更新进度:)
    • 是的,确认一下,这个答案解决了问题,我现在可以比我预期的更轻松地生成二维条码!
    【解决方案2】:

    我们成功使用了PHP中的ECC200 Datamatrix Generation:

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      相关资源
      最近更新 更多