使用包含 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自带的条码组件打印快递单(一款很不错的条码组件下载)