0

我正在尝试从 HTML 文档创建 PDF 文档。我正在使用 DOMPDF 来执行此操作,因为我发现其他所有文档要么太复杂,要么需要我在 Web 服务器本身安装一些东西。我只需要一个非常简单的 HTML 到 PDF 并强制下载某种脚本。到目前为止,这是我的代码。

它几乎完全可以工作。唯一不起作用的是图像......出于某种原因......当我回显 $html 变量并将其加载到它自己的页面中时它会起作用。

PHP

include('dompdf/dompdf_config.inc.php');

$html = $html_header . formatFormResultDownload($userid) . $html_footer;

$dompdf = new DOMPDF();
$dompdf->set_paper("a4");
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('User Gallery (' . date('Y-m-d H:i:s') . ').pdf');

HTML

<!DOCTYPE html>
<html>
<head>
    <title>****</title>
</head>
<body>
    <table border="1" cellpadding="10" width="100%">
        <tr>
            <td width="50%"><img src=
            "http://****.net/client/****/images/logo-large.gif"></td>

            <td width="50%"><span><strong>Email</strong>:
            ****@****.net</span><br>
            <span><strong>Company Name</strong>:****</span><br>
            <span><strong>Company Email</strong>:****</span></td>
        </tr>
    </table>

    <table border="1" cellpadding="10" width="100%">
        <tr>
            <td align="center" width="25%"><span><img src=
            "http://****.net/client/****/index.php?option=com_datsogallery&amp;view=sbox&amp;catid=7&amp;id=70635"
            style="width:200px" width="100%"></span><br>
            <br>
            <span><strong>IS Reference</strong>: 70635</span><br>
            <span><strong>Author</strong>: Rob Speakman</span><br></td>

            <td align="center" width="25%"><span><img src=
            "http://****.net/client/****/index.php?option=com_datsogallery&amp;view=sbox&amp;catid=7&amp;id=71173"
            style="width:200px" width="100%"></span><br>
            <br>
            <span><strong>IS Reference</strong>: 71173</span><br>
            <span><strong>Author</strong>: James Hearne</span><br></td>

            <td align="center" width="25%"><span><img src=
            "http://****.net/client/****/index.php?option=com_datsogallery&amp;view=sbox&amp;catid=7&amp;id=71177"
            style="width:200px" width="100%"></span><br>
            <br>
            <span><strong>IS Reference</strong>: 71177</span><br>
            <span><strong>Author</strong>: James Hearne</span><br></td>

            <td align="center" width="25%"><span><img src=
            "http://****.net/client/****/index.php?option=com_datsogallery&amp;view=sbox&amp;catid=7&amp;id=71171"
            style="width:200px" width="100%"></span><br>
            <br>
            <span><strong>IS Reference</strong>: 71171</span><br>
            <span><strong>Author</strong>: Makiko</span><br></td>
        </tr>
    </table>
</body>
</html>

PDF格式

在此处输入图像描述

谢谢

4

1 回答 1

2

dompdf 将具有完整 URL 的图像路径(即具有域部分的图像路径,例如http://example.com/image.png)视为“远程”。处理远程图像时,有一些设置很重要:

  1. DOMPDF_ENABLE_REMOTE应该设置为真
  2. 运行您的脚本的帐户(例如您的 Web 服务器)需要对指定文件夹的读/写权限DOMPDF_TEMP_DIR
  3. dompdf 获取远程图像file_get_contents(),仅在启用时才有效allow_url_fopen(某些主机禁用此功能)
  4. dompdf 可能需要使用 GD PHP 扩展进行一些图像处理

同样重要的是要注意 dompdf 0.5.x 在动态生成的图像方面存在问题,因为它严重依赖于图像类型检测的扩展。您可以尝试通过在 URL 末尾附加文件名来欺骗它,但这并不总是有效。动态图像问题在 0.6.x 版本中得到解决(目前处于测试阶段,但仍推荐使用)。

最后,如果您使用的是 dompdf 0.6.x,请查看安装文件 (dompdf/www/setup.php),如果您的安装有任何问题,它将通知您。

于 2013-09-18T20:40:55.283 回答