wkhtml2pdf渲染大小问题

Cit*_*ane 3 wkhtmltopdf

为了删除任何填充或边距,我创建了一个基本的html页面,其中包含一个表格,其高度应为297毫米(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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用wkhtml2pdf实用程序以A4 PDF格式呈现此内容(再次处理删除任何边距和/或填充:

wkhtmltopdf.exe --page-size A4 -L 0 -R 0 -T 0 -B 0 .\testsize.html testsize.pdf
Run Code Online (Sandbox Code Playgroud)

无论如何,PDF文档中渲染的表高度似乎不是297mm.它看起来更小:

渲染

只有在修改工作台高度时才height: 371mm可以将其填充到PDF文档中的全A4纸张高度(NB:371mm/291mm几乎是x1.25比率).

你知道渲染高度的这个比例来自何处以及我如何修复它?

  • NB1:据我所知,wkhtml2pdf使用webkit作为渲染引擎
  • NB2:当使用zoom = x1在chrome中显示html代码时,显示的高度已经与并排放置的A4 PDF文档不匹配,缩放也设置为x1.

lor*_*o-s 7

我不确定是否wkhtmltopdf尊重mmCSS单位.也就是说,您可以尝试调整一些命令行选项,以修改HTML文档大小和呈现的PDF之间的比率:

  • --zoom <float>:我认为这个是你个案中最重要的一个.尝试设置为--zoom 1.25您估算的比率.

  • --disable-smart-shrinking:根据我的经验,此命令通常会阻止元素大小具有意外值.

  • --dpi <number>:我不确定这会改变什么,但试试300或者600.

  • --disable-smart-shriking为我工作.但pdf仍然有不正确的字体. (2认同)