【发布时间】:2016-06-30 17:17:53
【问题描述】:
我正在使用 mPDF 库将 HTML 页面转换为 PDF。
这个库在我的本地机器和运行 PHP 5.6 的开发服务器上运行良好。
但是,在亚马逊新配置的 Ubuntu 16 机器上,使用 Apache 2.4.18 和 PHP 7 我无法正常工作。
症状是永远不会生成 PDF - 浏览器只是一直在旋转,最终我不得不退出浏览器以逃避该过程。我没有收到任何错误消息。
我已经完成了我的脚本来查看进程卡在哪里,并且它是在这个方法上:
$mPDF->WriteHtml($html);
我曾尝试将一个非常简单的 HTML 字符串传递给函数,例如:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<b>Hello!</b>
</body>
</html>
这确实有效。
所以我想知道我的 HTML 的质量。通过W3 Validator 运行我的HTML 发现了一些我现在已经修复的错误,但这并没有解决我的问题。
所以我现在想知道我的 HTML 的大小 - 这是一个正在呈现的大页面,在 PDF 上通常超过 20 页。
我的脚本为进程分配了大量内存:
ini_set('memory_limit', '1024M');
并且服务器总共有8G内存。
我应该在服务器配置中检查哪些可能会影响 mPDF 的内容?
感谢期待。
编辑
在进一步调试并将 HTML 剥离成越来越小的片段后,我已经能够生成 PDF - 但它非常很慢。
mPDF 似乎也找不到图像资产,所以我在 PDF 上得到损坏的图像符号。我想知道这个服务器设置是否有一个奇怪的 webroot / basePath,这意味着 mPDF 找不到它正在寻找的资产?
编辑 2
想知道这个问题现在是否与 mPDF not rendering images (mPDF error: IMAGE Error Could not find image file) 重复
我也遇到过加载缓慢和图片丢失的问题
【问题讨论】:
-
将
error_log=error_log添加到您的php.ini,运行脚本并检查文件error_log。或者,更好的是,遵循stackoverflow.com/a/21086666/2729937 上的建议(包括评论,调整设置路径)