gpt4 book ai didi

php - 以毫米为单位打印(生成)code128 条码(或任何图像) (php)

转载 作者:行者123 更新时间:2023-12-04 05:12:08 28 4
gpt4 key购买 nike

我需要用 code128 barcodes 生成标签在 PHP .
用户几乎可以使用任何打印机打印这些内容。

我有一些具体的要求:

  • 窄条宽度应介于 0.375 毫米和 0.5 毫米之间
  • 最大整体条码宽度:115mm
  • 前 8 位数字必须使用子集 B
  • 剩余的 20 位数字必须使用子集 C
  • 代码必须在高速下可读

  • 我尝试了几个条形码库,但大多数都不允许以毫米为单位说明最小条宽。您只能以固定的整数增量缩放窄条宽度,1 太小而 2 太大:)

    我还尝试使用 gd lib 重新采样图像,但代码在高速下变得不可读。

    我应该构建自己的代码生成器吗?
    如果是这样,我将如何生成以毫米为单位的条形?

    提前致谢

    最佳答案

    好的,我相信我找到了一个不适用于所有浏览器和打印机组合的解决方案,但它非常适合我。

    我正在使用位于 barcodegen 的 barodegen php 库因为它是唯一允许我为某些字符指定一个子集而为其他字符指定另一个子集的字符集。

    在我的具体问题中,我可以这样做:

    $setB = '%'.substr($vars->code, 0, 7);
    $setC = substr($vars->code, 7);

    $code_array = array(array(CODE128_B, $setB), array(CODE128_C, $setC));

    然后将 $code_array 解析为条形码。

    现在,另一个问题也很简单,通过设置生成的条码图像的每英寸点数来解决。这被称为,我认为是错误的,DPI。如果我弄错了,请纠正我,但 DPI 是打印机的硬件特性。你不能改变这一点。另一方面,您可以更改 PPI。

    在我的问题中,我有一个 244 像素宽的图像,我需要它打印超过 95 毫米。
    barcodegen 允许您通过调用来做到这一点
    $drawing->setDPI(64);
    // I do think they should rename this to setPPI

    现在,在您拥有 64ppi 的 224px 图像后,您需要做的就是将其显示在 img 标签中,如下所示:
    <img style="width: 96.8375mm;" src="interlink_code128_barcode.php?code='.$code128.'" border="0">

    96.8375mm 是通过解简单方程得到的,如果图像在一英寸中包含 64 个像素,那么多少英寸将占据 244 个像素?然后你把英寸转换成毫米

    我还没有确认可以高速读取条码,但我确实看到打印输出看起来很清晰! :D

    关于php - 以毫米为单位打印(生成)code128 条码(或任何图像) (php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773724/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com