我使用wkhtmltopdf来制作A4大小的PDF。当我创建一个<div>
标签并将其样式设置为height: 297mm; width: 210mm
(这是A4的定义大小),将wkhtmltopdf的边距设置设置为0(wkhtmltopdf -B 0 -T 0 -L 0 -R 0 ...
),并给予<div>
设为红色背景时,我可以在页面底部看到一条白色,即:<div>
没有完全填满页面。Debian上的0.11.0 rc1(最新版本)和Mac OS X上的0.10.0 rc2都是如此。
有其他人看过这个吗?这是一个已知的问题,还是有解决方法?
6条答案
按热度按时间l7mqbcuq1#
我有一个方法,为我工作,使用边距。
如果这不起作用,请尝试:
rqdpfwrv2#
也许可以尝试增加
<div>
的高度一毫米的分数?height: 297.5mm
还是height: 298mm
?如果成功了告诉我。
jpfvwuh43#
尝试设置
<div>
元素style="margin: 0;"
在我的情况下这有助于...ds97pgxw4#
不知道这是否有帮助,但经过一些尝试(div上的红色边框),我发现wkhtmltopdf默认的A4页面大约是1000px宽,1425px高。
cpjpxq1n5#
wkhtmltopdf有以下标志:
--disable-smart-shrinking
-当你使用这个时,尺寸被解析为给定的,所以A4将是几乎210mm x 297mm,就像预期的那样。然而,在~40+页的过程中,似乎297. 25毫米的高度是安全的。
wkhtmltopdf -L 0 -R 0 -T 0 -B 0 -s A4 --disable-smart-shrinking doc.html doc.pdf
没有使用它,所以有了这个神奇的智能收缩启用,一个完整的A4页面对我来说是
或
用33页那样大小的纸进行测试
dy2hfwbg6#
默认的A4将取决于获得正确的度量表比率,可悲的是有太多的错误答案。
默认的px在应用程序中自然会四舍五入,因为px应该是整数,因此不真实
A4作为像素的基础上(不正确的假设有一个固定的96每英寸数)
QT Web Kit使用160 dpi,因此它将与
理想情况下,打印时的介质也应设置为
最大的问题是WebKit的使用默认的规模
--enable-smart-shrinking
启用智能收缩策略
WebKit使用的像素/dpi
比率非常数(默认)
这意味着对于A4宽@100%,我们需要一个不同的值,通过试验和错误,您可能会发现这是可行的
因此,对于像这样的HTML图形,其中96是标准值,我们需要添加重写**
--disable-smart-shrinking
**并且会使用正确的比例和尺度
结果应该是完美的。
第二个问题是不同的浏览器在确定PDF单位时使用不同的舍入策略,因此FireFox的值可能需要对Chromium进行小的调整!反之亦然!