3

我正在尝试将我网站上的页面保存为 pdf。我能够让样式表使用绝对 URL 工作,但无论如何都无法让图像呈现。

我尝试过使用相对 url、绝对 url——甚至是 '/var/www/vhosts...' 服务器路径。不报错,不渲染图片。图像所在的空间被折叠起来,就好像它甚至不是代码的一部分!

我试过 wkhtmltopdf 版本:11.0 RC1、10.0 RC2 和 9.9。运行 Cent OS 6.3。

我正在使用 php 类 PHP WkHtmlToPdf ( http://mikehaertl.github.io/phpwkhtmltopdf/ )。我没有尝试在命令行上运行相同的命令,因为我正在呈现的页面受密码保护并使用会话变量。

同一个页面确实在浏览器中完美呈现。

我已经尝试了所有我能找到的解决方案 - 任何帮助将不胜感激!

4

2 回答 2

6

我今天无意中偶然发现了答案。

我的图像包含在一个绝对定位的 div 中,该 div 具有基于百分比的高度和顶部位置。在网站上,包含的 div 有一个定义的高度,所以这很好用。在打印副本上,此 div 不再存在,因此它似乎将图像保持 div 定位在页面之外,或者将其高度降低到 0。无论哪种方式 - 将整个页面大小的绝对定位 div 放置在元素周围不仅使图像正确渲染,而且更正了页面上其他绝对定位元素的定位!

于 2013-07-09T20:26:04.483 回答
2

这是您的图像可能无法在 PDF 上显示的另一个原因,尽管在 HTML 中呈现正常。

如果您在图像(或它的父级)目录中有RewriteEngine on一个文件,这可能是原因。.htaccess

要检查这一点,请注释掉重写条件并重试。

为了达到这一点,我发现curl在命令行上输入图像有助于解决这个问题。一个命令,例如:

 curl "http://localhost/directory/path/logo.png"

可能会返回Forbidden,并显示一条消息,例如“您无权访问...在此服务器上”

于 2017-07-29T13:28:22.930 回答