我使用laravel-snappy 作为wkhtmltopdf的包装器,用于从 HTML 创建 PDF。
在使用相同配置运行相同代码时,我得到不同的输出:
两种环境都在使用wkhtmltopdf 0.12.4 (with patched qt)
,对这种差异有什么想法吗?
我使用laravel-snappy 作为wkhtmltopdf的包装器,用于从 HTML 创建 PDF。
在使用相同配置运行相同代码时,我得到不同的输出:
两种环境都在使用wkhtmltopdf 0.12.4 (with patched qt)
,对这种差异有什么想法吗?
您可以尝试以下几件事:
--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
wkhtmltopdf 依赖 Qt Webkit 来进行 PDF 的无头渲染。Qt Webkit 是跨平台的,但在 CentOS 和 MacOS 之间使用不同的 API。
有一个Github问题虽然已关闭,但仍有人在使用 X11 版本的 Qt Webkit 时报告 12.4 版本中的类似问题。最后一条评论来自有人报告说@kerrin 之类的解决方案对他们不起作用,所以也许你遇到了同样的问题。
我在生产中的 CentOS 和本地的 MacOS 上运行旧版本的 Wkhtmltopdf,并且没有注意到这样的问题。
尝试像0.12.1这样的旧版本,如果您仍然注意到问题,请尝试使用--dpi
and--disable-smart-shrinking
标志。
对我来说,这里的解决方案是:
--disable-smart-shrinking
和
--page-size Letter