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

时间:2012-06-04 11:15:14

标签: php zend-framework zend-framework2 barcode code128

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

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

barcode

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

enter image description here

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

我已尝试将各种组合(如下所示)传递到options数组的'text'参数中。 http://framework.zend.com/manual/en/zend.barcode.objects.html

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

编辑:

我尝试在文本字符串中使用ü/Ç字符,但PHP每次都会跳起来。

1 个答案:

答案 0 :(得分:2)

似乎无法在当前版本的\ Zend \ Barcode \ Object \ Code128中包含FNC3字符。我会复制Code128.php,将'FNC3'替换为charcode大于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的加载器覆盖原始类,或者创建一个模块以标准方式执行。