我只想要一个Action来打印条形码图像,但是我无法在MVC中使用它,我只是执行以下操作:
public function barcodeAction() {
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
Zend_Barcode::render($_GET['barcodeType'], 'image', $_GET, $_GET);
}
但是当我打电话时
/barcode?barcodeType=code39&text=ZEND-FRAMEWORK
我刚获得: “图像无法显示,因为它有错误”(或类似的东西,取决于浏览器)。 谢谢!
答案 0 :(得分:0)
由于Content-Type
发送的Zend_Barcode
标头,您可能会收到无法看到的错误。确保已启用log_errors
并且已配置日志的有效/可写目标。通过这种方式,您可以检查错误日志中是否存在您通常可以通过浏览器读取的任何内容。
http://us3.php.net/manual/en/errorfunc.configuration.php#ini.log-errors
答案 1 :(得分:0)
我的代码没问题,我在浏览器中调用了这个url:http://localhost/index/barcode?barcodeType=code39&text=ZEND(你的代码在IndexController中),我收到了正确的图片。
如果我将<img src="http://localhost/index/barcode?barcodeType=code39&text=ZEND" />
放在视图中,我也会有图像。
迈克尔
答案 2 :(得分:0)
我知道现在这可能已经过时但是当我遇到同样的问题时我才加入
ob_clean();
在我的控制器中所以现在我的动作看起来像这个
public function generateBarcodeAction() {
ob_clean();
$number = $this->params()->fromRoute('number');
$barcodeOptions = array('text' => $number);
$rendererOptions = array('imageType'=>'png');
Barcode::render(
'ean13', 'image', $barcodeOptions, $rendererOptions
);
}
它的工作就像一个魅力