wkhtml2pdf 渲染大小问题
wkhtml2pdf rendering size issue
注意删除任何填充或边距,我创建了一个基本 html 页面,其中包含一个 table 高度应该是 297mm(A4 纸高度):
<!DOCTYPE html>
<html>
<head>
<style>
body
{
padding: 0; /* Padding for content */
margin: 0 auto; /* Margin from container */
}
table
{
padding: 2.5mm 5mm; /* Padding for content */
margin:0; /* Margin from container */
width:100%;
border-spacing:0;
background-color:yellow;
height:297mm;
}
</style>
</head>
<body>
<table>
<tr style="height:3%"><td style="background-color:RGB(235, 105, 11)">1</td></tr>
<tr style="height:30%"><td style="background-color:RGB(47,52,57)">2</td></tr>
<tr style="height:17%"><td style="background-color:RGB(94,98,102)">3</td></tr>
<tr style="height:auto"><td style="background-color:RGB(255,255,255)">4</td></tr>
<tr style="height:13%"><td style="background-color:RGB(47,52,57)">5</td></tr>
</table>
</body>
</html>
我正在尝试使用 wkhtml2pdf 实用程序以 A4 PDF 格式呈现它(再次注意删除任何边距 and/or 填充:
wkhtmltopdf.exe --page-size A4 -L 0 -R 0 -T 0 -B 0 .\testsize.html testsize.pdf
无论如何渲染 table PDF 文档中的高度似乎不是 297mm。它看起来更小:
只有将table高度修改为height: 371mm
时,我才能让它在PDF文档中填满A4纸的高度(注意:371mm/291mm几乎是x1.25的比例).
你知道渲染高度的这个比例是从哪里来的吗?我该如何解决它?
- NB1:据我所知,wkhtml2pdf 使用 webkit 作为渲染引擎
- NB2:当在 chrome 中显示 html 代码且 zoom=x1 时,显示的高度已经与并排放置且缩放也设置为 x1 的 A4 PDF 文档不匹配。
我不确定 wkhtmltopdf
是否尊重 mm
CSS 单位。也就是说,您可以尝试调整一些命令行选项来修改 HTML 文档大小与呈现的 PDF 之间的比率:
--zoom <float>
:我认为这个对你来说是最重要的。尝试设置为 --zoom 1.25
,您估计的比率。
--disable-smart-shrinking
:根据我的经验,此命令通常可以防止元素大小具有意外值。
--dpi <number>
:我不确定这是否会有所改变,但请尝试 300
或 600
。
注意删除任何填充或边距,我创建了一个基本 html 页面,其中包含一个 table 高度应该是 297mm(A4 纸高度):
<!DOCTYPE html>
<html>
<head>
<style>
body
{
padding: 0; /* Padding for content */
margin: 0 auto; /* Margin from container */
}
table
{
padding: 2.5mm 5mm; /* Padding for content */
margin:0; /* Margin from container */
width:100%;
border-spacing:0;
background-color:yellow;
height:297mm;
}
</style>
</head>
<body>
<table>
<tr style="height:3%"><td style="background-color:RGB(235, 105, 11)">1</td></tr>
<tr style="height:30%"><td style="background-color:RGB(47,52,57)">2</td></tr>
<tr style="height:17%"><td style="background-color:RGB(94,98,102)">3</td></tr>
<tr style="height:auto"><td style="background-color:RGB(255,255,255)">4</td></tr>
<tr style="height:13%"><td style="background-color:RGB(47,52,57)">5</td></tr>
</table>
</body>
</html>
我正在尝试使用 wkhtml2pdf 实用程序以 A4 PDF 格式呈现它(再次注意删除任何边距 and/or 填充:
wkhtmltopdf.exe --page-size A4 -L 0 -R 0 -T 0 -B 0 .\testsize.html testsize.pdf
无论如何渲染 table PDF 文档中的高度似乎不是 297mm。它看起来更小:
只有将table高度修改为height: 371mm
时,我才能让它在PDF文档中填满A4纸的高度(注意:371mm/291mm几乎是x1.25的比例).
你知道渲染高度的这个比例是从哪里来的吗?我该如何解决它?
- NB1:据我所知,wkhtml2pdf 使用 webkit 作为渲染引擎
- NB2:当在 chrome 中显示 html 代码且 zoom=x1 时,显示的高度已经与并排放置且缩放也设置为 x1 的 A4 PDF 文档不匹配。
我不确定 wkhtmltopdf
是否尊重 mm
CSS 单位。也就是说,您可以尝试调整一些命令行选项来修改 HTML 文档大小与呈现的 PDF 之间的比率:
--zoom <float>
:我认为这个对你来说是最重要的。尝试设置为--zoom 1.25
,您估计的比率。--disable-smart-shrinking
:根据我的经验,此命令通常可以防止元素大小具有意外值。--dpi <number>
:我不确定这是否会有所改变,但请尝试300
或600
。