wkhtmltopdf 默认设置?

Bro*_*shi 5 pdf wkhtmltopdf phpwkhtmltopdf

我使用laravel-snappy 作为wkhtmltopdf 的包装器,用于从 HTML 创建 PDF。

当使用相同的配置运行相同的代码时,我得到不同的输出:

CentOS 输出:在此输入图像描述(正确居中,但底部留有大边距)

macOS 输出:在此输入图像描述(右边部分被裁剪了,而且底部还有很大的边距)

两种环境都使用wkhtmltopdf 0.12.4 (with patched qt),对于这种差异有什么想法吗?

ker*_*rin 5

您可以尝试以下几件事:

--disable-smart-shrinking

--dpi 96尝试使用此数字以获得一致的结果(可能约为 130)

--zoom 1.33

设置跨平台通用的字体系列(请参阅http://www.apaddedcell.com/sites/www.apaddedcell.com/files/fonts-article/final/index.html)。设置为font-family: xxx, xxx, xxx, sans-serif

之前提到的另一件事是设置页面尺寸为 px 而不是 mm --page-width 1588px --page-height 1210px


Sea*_*hey 5

Wkhtmltopdf 依赖 Qt Webkit 来进行 PDF 的无头渲染。Qt Webkit 是跨平台的,但在 CentOS 和 MacOS 之间使用不同的 API。

有一个Github问题,虽然已关闭,但仍然有人报告在 12.4 版本中使用 X11 版本的 Qt Webkit 时出现类似问题。最后一条评论来自某人,他报告说像 @kerrin 这样的解决方案对他们不起作用,所以也许您遇到了同样的问题。

我在生产中的 CentOS 和本地 MacOS 上运行旧版本的 Wkhtmltopdf,并且没有注意到这样的问题。

尝试使用旧版本,例如0.12.1,如果您仍然注意到该问题,请尝试使用--dpi--disable-smart-shrinking标志。