DOMPDF无法呈现图像,输出截断的文件

时间:2015-01-23 00:33:34

标签: php pdf dompdf

首先要做的事情:

  • DOMPDF_ENABLE_REMOTE设置为true,似乎可以正常工作,因为我确实已经加载了远程CSS
  • DOMPDF_TEMP_DIR设置为sys_get_temp_dir()并使用is_writable()进行检查 - 我可以看到那里的PHP会话文件以及一些文件,例如ca_dompdf_img_Dl2XSR,其大小为0字节< / LI>
  • 根据phpinfo()
  • 启用GD扩展程序
  • 如果我将HTML代码直接传递给浏览器(而不是DOMPDF),我可以看到图像

DOMPDF_LOG_OUTPUT_FILE文件没有任何用处。

尝试通过两个:

  • 直接http:// url (服务器不需要身份验证)以及
  • 文件系统上的
  • 绝对路径(已确认为is_readable()并由getimagesize()看到)

这就是奇怪的:当我传递绝对路径时,DOMPDF_TEMP_DIR中的临时文件被创建为空,即0字节,PDF显示image not found

现在,如果我将URL传递给图像,则临时文件不为空。如果我下载其中一个文件并添加.jpg扩展名,则会将其作为普通JPEG打开。 PDF本身向我显示此PDF文档可能无法在Firefox中正确显示并在Adobe Reader中崩溃。

当我在文本编辑器中打开PDF时,我可以看到以下内容:

BT 126.710 613.952 Td /F1 9.6 Tf  [(http://example.com/img/123.jpg )] TJ ET

请注意,它在.jpg后面有一个空格,它在我传递的HTML中不存在。该文件还有一些stream部分,看起来像原始的jpeg代码。然后由于某种原因文件被截断。

同样,如果我传递绝对路径,则PDF呈现正常,只是图像不存在。如果是URL,则无法完全呈现。这些问题的感觉有某种联系。

可能导致此问题的原因是什么?

0 个答案:

没有答案