如何过来TCPDF错误:[图片]无法获取图像?

时间:2012-01-17 13:18:09

标签: php tcpdf

我正在使用tcpdf v5.9.144

我正在尝试使用给定的输入下载PDF,如果图像有错误的链接则无法正常工作。当然,它的工作原理是: - )

但我的问题是,有没有办法在没有显示致命错误的情况下继续进行

注意:注释错误代码不是正确的方法,我想是的。

2 个答案:

答案 0 :(得分:6)

class ErrorIgnoringTCPDF extends TCPDF {

public function Error($msg) {
   // unset all class variables
   $this->_destroy(true);

   // do whatever you want with $msg
   print $msg;
}

}

将忽略pdf中的所有错误。但你真的不想那样做! 当lib无法加载想要在PDF中显示的图像(物理上)时,会引发错误。 因此,您最好开始验证PDF中使用的图像,以确保不会抛出错误本身。 我现在已经知道TCPDF正在使用不可加载的图像做什么。我猜它会刹车。

考虑重载图像功能并在添加图像时测试图像的存在。然后抛出异常并在应用程序堆栈中更高的位置处理错误

答案 1 :(得分:1)

忽略错误并不会很好。当被要求使用不存在的图像时,T​​CPDF将简单地“死()”,将错误打印到屏幕上。这意味着它超出了我的应用程序的整个异常/错误处理系统。

感谢您提出问题并提出解决方案。我将在我的Symfony2项目中使用它。它使得任何TCPDF问题抛出一个由框架处理的异常,因为TCPDF本身不会抛出异常。我将它与WhiteOctober Symfony2捆绑包一起使用,它允许您以这种方式扩展TCPDF类。

namespace Acme\MyBundle\ClassExtensions;

class ExceptionThrowingTCPDF extends \TCPDF {

    public function Error($msg) {
       // Clean up: unset class variables
       $this->_destroy(true);

       throw new \Exception('PDF generation failed: ' . $msg);
    }

}