有用 wkhtmltopdf 生成过 pdf 的朋友请进,请教尺寸不一致问题

2017-07-30 17:17:14 +08:00
 MrMike

我在 firefox 里面,用 js 获取的元素高度是 112.75 ,但是在用 wkhtmltopdf 生成 pdf 时,js 打印出来的高度却变成了 480 了。这个是怎么回事呢?有没有朋友可以指教下。谢谢。

2942 次点击
所在节点    JavaScript
7 条回复
xu1ming
2017-07-30 19:33:27 +08:00
好像有个 dpi 参数可以调
zenxds
2017-07-30 19:46:35 +08:00
不知道,但是 wkhtmltopdf 的内核版本比较旧一点,前几天自己写了一个工具,基于 chrome headless api,自认为简单好用很多,安利一下 https://www.npmjs.com/package/page2pdf
codelover2016
2017-07-30 20:26:26 +08:00
没记错的话,有参数可以控制整个页面的默认大小,pagesice ?
SolidZORO
2017-07-30 21:26:59 +08:00
'macOS' => '/usr/local/bin/wkhtmltopdf -g -l --dpi 74'
'debian' => '/usr/local/bin/wkhtmltopdf'

这两者输出是一致的。我调了至少半天,楼主看着办。wkhtmltoX 系列在各平台上差距不小,得微调。
MrMike
2017-07-30 21:50:55 +08:00
@SolidZORO
@xu1ming dpi 用的是默认的 96,没有单独配置。我用 px 换算成 mm,按照 mm = (px * 25.4) / dpi (网上的公式),这样出来的结果还需要再除以 3.8,在生成的 pdf 时,高度才算合理,但是这样的话,不晓得整体的页面高度了,页面也是用的默认设置 A4,按照 A4 的高度计算,生成的 PDF 文件就不对了,中间的内容高度为负数了。。
CheungKe
2017-07-31 09:36:01 +08:00
1. wkhtmltopdf 不好用,中文问题没解决
2. 后面转用 casperjs, 竖排文字排版有限制
3. @zenxds chrome headless api,没试过,应该是最完美的解决方案
MrMike
2017-07-31 09:55:19 +08:00
@CheungKe 中文的问题,可以解决,装上中文的语言包,就解决了,至少我目前还没遇到过乱码的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX