繁体   English   中英

ZF2的DOMPDF中的图像错误

[英]Image error in DOMPDF for ZF2

大家好,欢迎光临,对不起我的英语而不是我的主要语言。 我也是Zend Framework 2的初学者。 当我尝试在网页中显示图像时,ZF2中的DOMPDF出现了问题(带有apache2的虚拟主机,桌面中的文件夹)。 例如:

<img src="/home/luifer/logo_uca.png" alt="logo_uca" />

与错误:

[2014年5月18日,星期日12:28:45.023452] [:错误] [pid 7195] [客户端127.0.0.1:57089] PHP致命错误:未捕获的异常'DOMPDF_Exception',消息为'找到块级父。 不好。' 在/home/luifer/Desktop/zf2-tutorial/vendor/dompdf/dompdf/include/inline_positioner.cls.php:37\\nStack trace:\\ n#0 / home / luifer / Desktop / zf2-tutorial / vendor / dompdf / dompdf / include / frame_decorator.cls.php(700):Inline_Positioner-> position()\\ n#1 /home/luifer/Desktop/zf2-tutorial/vendor/dompdf/dompdf/include/inline_frame_reflower.cls.php(36) :Frame_Decorator-> position()\\ n#2 /home/luifer/Desktop/zf2-tutorial/vendor/dompdf/dompdf/include/frame_decorator.cls.php(711):Inline_Frame_Reflower-> reflow(NULL)\\ n#3 /home/luifer/Desktop/zf2-tutorial/vendor/dompdf/dompdf/include/page_frame_reflower.cls.php(123):Frame_Decorator->reflow()\\n#4 / home / luifer / Desktop / zf2-tutorial / vendor /dompdf/dompdf/include/frame_decorator.cls.php(711):Page_Frame_Reflower-> reflow(NULL)\\ n#5 /home/luifer/Desktop/zf2-tutorial/vendor/dompdf/dompdf/include/dompdf.cls。 php(949):Frame_Decorator-> reflow()\\ n#6 / home / luifer / Desktop / zf2-tutorial / vendor / dino / dompdf-module / src /在/ home / luifer / Desktop / zf2-tutorial / vendor / DOMPDF / DOMPDF /在 在第37行上clude / inline_positioner.cls.php

当我手动在浏览器上打开同一页面时(用浏览器右键单击打开的页面),图像显示在页面中。

以防万一,我的控制器功能:

    public function extraordinarioAction()
{
    //quitar de la bd

    $pdf = new PdfModel();

    return $pdf;

}

我的视图页面是extraordinario.phtml,上面有一个html页面。 我尝试了一个带有加载图像的简单页面,但没有任何显示,只有空白页面出现了此错误。

有人知道如何解决这个问题吗? 我已经做了一些事情,例如启用mbstring

有任何想法吗? 并预先感谢。

其他回答:由于DomPDF无法读取文件,因此可能会出现此问题。 由于您的Web应用程序中正在运行DomPDF,因此php可能拥有该进程(例如www-data )。 该用户应该对您要读取的图像具有读取权限。

另一个问题是您的映像位于/home/luifer 有时,其他用户无法读取用户目录。

因此:最好的选择是将图像放置在共享位置(例如/var/www某个位置)。 否则,请确保该文件对于其他人而言是可读的( chmod a+r logo_uca.png ),并且所有父目录对于其他人都是可执行的( chmod a+x /home/luifer )。 请检查每个目录,说“桌面中的文件夹”,因此,如果文件位于/home/luifer/Desktop ,请同时检查Desktop文件。

根据dompdf文档(可在此处找到): https : //code.google.com/p/dompdf/wiki/FAQ

它说:“应在0.4.1及更高版本中修复此问题。该错误是由parse_url()认为'c:\\'中的'c'是一个协议引起的。0.4.1版可解决此问题。另一种可能问题是由于文件未正确上传引起的。请尝试重新上传文件。”

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM