获取带有zend条形码的表格

时间:2013-03-18 13:38:31

标签: php zend-framework frameworks barcode

我需要显示(并稍后打印)一个页面,其中包含每行包含条形码和说明的表格。

我有我的

$result = $mySql->query->fetchAll();

包含正确的数据。

起初我做了一个

$rendererOptions = array();
    foreach($result as &$res){
        $barcodeOptions = array(
                'text' => $res['myParam'],
                'rendererParams' => array('imageType' => 'gif'),);
        $res['barcode'] = Zend_Barcode::factory('CODE39', 'image', $barcodeOptions, $rendererOptions)->draw();
}

    $this->view->data = $result;

效果不好。然后我尝试了:

Zend_Barcode::render(....);

有许多组合,甚至是

$.post('/mycontroller/myactionthatrendersthebarcode',{code : this.id}, function(data){
            $(this).html(data);     });

在我的.phtml页面中(几乎杀死了网络:D)

关注文档(http://framework.zend.com/manual/1.12/en/zend.barcode.creation.html) 我只有一个,但正确的条形码或一堆资源我不知道如何管理。

有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

draw方法返回gd图像资源。要输出图像,您可以这样做:

$rendererOptions = array();
$barcodeOptions = array(
    'text' => 'TEST',
    'rendererParams' => array('imageType' => 'gif'),
);
$resource = Zend_Barcode::factory('CODE39', 'image', $barcodeOptions, $rendererOptions)->draw();

header('Content-Type: image/gif');
imagegif($resource);
exit;

render方法会自动为您执行此操作:

$rendererOptions = array();
$barcodeOptions = array(
    'text' => 'TEST',
    'rendererParams' => array('imageType' => 'gif'),
);
Zend_Barcode::factory('CODE39', 'image', $barcodeOptions, $rendererOptions)->render();
exit;

如果要在img标记中输出图像,则必须将上述内容写入操作并调用它。例如,上述脚本位于outputAction

中的ImgController
<img src="/img/output">

如果你想动态地动作,你可以将para参数发送到动作并在动作中执行逻辑。

<img src="/img/output/text/TEXT">
<img src="/img/output/id/123">