wkhtmltopdf css尺寸(cm/mm)

bpsygsoo  于 2023-06-25  发布在  其他
关注(0)|答案(6)|浏览(190)

我使用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都是如此。
有其他人看过这个吗?这是一个已知的问题,还是有解决方法?

l7mqbcuq

l7mqbcuq1#

我有一个方法,为我工作,使用边距。

style="margin:0,auto"

如果这不起作用,请尝试:

style="margin:0,auto,0,auto"
rqdpfwrv

rqdpfwrv2#

也许可以尝试增加<div>的高度一毫米的分数?
height: 297.5mm还是height: 298mm
如果成功了告诉我。

jpfvwuh4

jpfvwuh43#

尝试设置<div>元素style="margin: 0;"在我的情况下这有助于...

ds97pgxw

ds97pgxw4#

不知道这是否有帮助,但经过一些尝试(div上的红色边框),我发现wkhtmltopdf默认的A4页面大约是1000px宽,1425px高。

cpjpxq1n

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页面对我来说是

{
  width: 991px;
  height: 1403px;
}

{
  width: 262.2mm;
  height: 371.25mm;
}

用33页那样大小的纸进行测试

dy2hfwbg

dy2hfwbg6#

默认的A4将取决于获得正确的度量表比率,可悲的是有太多的错误答案。
默认的px在应用程序中自然会四舍五入,因为px应该是整数,因此不真实
A4作为像素的基础上(不正确的假设有一个固定的96每英寸数)

width: 793.701px;
  height: 1122.52px;

QT Web Kit使用160 dpi,因此它将与

body {
  border: 0;
  margin: 0;
  padding: 0;
  width: 992.126px;
  height: 1403.15px; 
}
.myDiv {
  border: 5px outset red;
  background-color: lightblue;    
  text-align: center;
  height: 1393.15px;
}

理想情况下,打印时的介质也应设置为

<style>
@media print {
@page { size: 210mm,297mm; }
}
body {

最大的问题是WebKit的使用默认的规模
--enable-smart-shrinking
启用智能收缩策略
WebKit使用的像素/dpi
比率非常数(默认)
这意味着对于A4宽@100%,我们需要一个不同的值,通过试验和错误,您可能会发现这是可行的

body {
  border: 0;
  margin: 0;
  padding: 0;
}
.myDiv {
  background-color: red;    
  text-align: center;
  width: 100%;
  height: 1052.9pt;
}

因此,对于像这样的HTML图形,其中96是标准值,我们需要添加重写**--disable-smart-shrinking**
并且会使用正确的比例和尺度

wkhtmltopdf.exe  -B 0 -T 0 -L 0 -R 0 -s A4 --disable-smart-shrinking red.htm red.pdf

结果应该是完美的。

第二个问题是不同的浏览器在确定PDF单位时使用不同的舍入策略,因此FireFox的值可能需要对Chromium进行小的调整!反之亦然!

相关问题