4

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

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

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

macOS 输出:(在此处输入图像描述右边部分被裁剪,底部也有很大的空白)

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

4

3 回答 3

4

您可以尝试以下几件事:

--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

于 2017-10-11T21:56:58.237 回答
3

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

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

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

尝试像0.12.1这样的旧版本,如果您仍然注意到问题,请尝试使用--dpiand--disable-smart-shrinking标志。

于 2017-11-15T22:04:18.870 回答
1

对我来说,这里的解决方案是:

--disable-smart-shrinking

--page-size Letter
于 2018-05-02T16:56:54.553 回答