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

标签 php printing barcode-printing code128

我需要在 PHP 中生成带有 code128 条形码 的标签。 用户可以使用几乎任何打印机打印这些内容。

我有一些特定的要求:

  • 窄条宽度应在 0.375 毫米至 0.5 毫米之间

  • 条码最大整体宽度:115mm

  • 前 8 位数字必须使用子集 B
  • 剩余 20 位数字必须使用子集 C
  • 代码必须能够高速读取

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

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

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

提前致谢

最佳答案

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

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

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

$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/

相关文章:

php - 未知列 'STRICT_ALL_TABLES,' 设置 CodeIgniter DB 连接

php - php7.2.x 没有 openssl.so 扩展

c# - 从 C# 中的 WebBrowser 控件打印时设置页面方向。 (非 WPF 应用程序)

image - 如何在 TSC 打印机中打印图像

c# - 为 IDAutomationHC39M 创建 2 位条码但不扫描

php - Zillow - 请求被阻止,检测到爬虫

PHP 记录完整请求

html - 打印大型 HTML 表格时如何处理分页符

c# - 在 .Net 中使用 HP laserJet 10xx 进行打印

java - 如何调整 BBQ api 生成的条形码大小?