我正在使用tcpdf v5.9.144
我正在尝试使用给定的输入下载PDF,如果图像有错误的链接则无法正常工作。当然,它的工作原理是: - )
但我的问题是,有没有办法在没有显示致命错误的情况下继续进行?
注意:注释错误代码不是正确的方法,我想是的。
答案 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)
忽略错误并不会很好。当被要求使用不存在的图像时,TCPDF将简单地“死()”,将错误打印到屏幕上。这意味着它超出了我的应用程序的整个异常/错误处理系统。
感谢您提出问题并提出解决方案。我将在我的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);
}
}