使用包含 FNC3 功能字符的 Zend 条码组件创建 Code 128 条码

Posted

技术标签:

【中文标题】使用包含 FNC3 功能字符的 Zend 条码组件创建 Code 128 条码【英文标题】:Create Code 128 Barcode with Zend Barcode Component that contains an FNC3 function character 【发布时间】:2012-06-08 11:15:06 【问题描述】:

我正在尝试研究如何在我的 Zend 条形码中包含 FNC3 控制字符。

例如,此条码包含 FNC3 字符,然后是 0B

将其与不包含此字符的条形码进行比较。

我无法弄清楚如何 (1) 更改 128 型条形码的字符集。 (2) 在type128条码中包含一个控制字符(FNC1-4)。

我已经尝试将如下所示的各种组合传递到选项数组的“文本”参数中。 http://framework.zend.com/manual/en/zend.barcode.objects.html

这可能吗?如何通过 FNC3 字符。这是文字字符串'FNC3'还是我遗漏了什么。

编辑:

我尝试在我的文本字符串中使用 ü / Ç 字符,但 php 每次都会出错。

【问题讨论】:

【参考方案1】:

似乎没有办法在当前版本的 \Zend\Barcode\Object\Code128 中包含 FNC3 字符。我会复制 Code128.php,将“FNC3”替换为字符码大于 128 的字符,例如chr(228)(根据http://www.barcoderesource.com/code128_barcode_map.html是条形码字体中字符的ASCII码):

protected $charSets = array(
    'A' => array(
    /*...*/
        chr(228), 'FNC2', 'SHIFT', 'Code C', 'Code B', 'FNC4', 'FNC1',
    /*...*/
    'B' => array(
    /*...*/
        chr(228), 'FNC2', 'SHIFT', 'Code C', 'FNC4', 'Code A', 'FNC1',

然后在你的字符串中使用 chr(228)(例如chr(228).'0B')。最后,您可以使用 composer 的加载器或创建一个模块以标准方式覆盖原始类。

【讨论】:

谢谢。我现在用不同的方式解决了它,但我很感激。每次我需要解决 ZF2 中做出的错误决定或意见分歧时,我不得不手动分叉并维护自己的存储库,这让我感到很沮丧,所以我尽量避免它。 你是怎么解决这个问题的?对此很感兴趣,因为我们需要生成一些 FNC3 代码。 Zend Barcode 插件完全按照它所说的去做。它生成 Code128 条码。它不会就何时何地进行转换做出逻辑决策(代码集转换等,例如在 GS1-128 标准中),因为这是客户的责任。

以上是关于使用包含 FNC3 功能字符的 Zend 条码组件创建 Code 128 条码的主要内容,如果未能解决你的问题,请参考以下文章

不使用fastreport自带的条码组件打印快递单(一款很不错的条码组件下载)

检查最终字符串中的 ITF 或 Code 128 条码完整性

zend studio mac

如何创建 Code 128 自动条码?

条码类型code128是啥意思

Xamarin Android 开发的免费条码扫描替代方案