如何避免在使用 pdfHtml 生成的 PDF 中添加不需要的白色 space?

How to avoid unwanted white space getting add in PDF generated using pdfHtml?

我正在使用 iText 的 pdfHtml 从 HTML 生成 PDF,但我可以看到在生成的 PDF 的两个元素之间添加了很多空格。

请看下面HTML和PDF

下图中突出显示的部分显示了两行之间不需要的空白。

.

以下是来源HTML内容。

 <html>
 <head></head>
 <body>  
  <meta name="generator" content="HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net"> 
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  <style type="text/css">
 * { font-family: 'Arial Unicode MS'; } 
    </style> 
  <title></title>   
  <img border="0" style="margin-left: 370px;" width="340.6" src="file:Docs_a0s29000000qTxeAAE/01529000000ITQ8.PNG">  
  <div style="font-size: 25px; font-family: Roboto, arial, sans-serif;">
   สวัสดีชาวโลก!
  </div> 
  <div style="font-size: 25px; font-family: Roboto, arial, sans-serif;">
   นี่คือเทมเพลตการปฏิเสธความรับผิด!
  </div> 
  <ul> 
   <li>BioConnect Version 1 - Capture</li> 
  </ul>  
  <p> <span style="font-size: 25px; font-family: Roboto, arial, sans-serif;">嘿!这是结算模板</span> </p> 
  <div style="margin-right: 500px;">
   中文1 
   <img border="0" src="null" style="margin-right: 500px;" width="112.5"> 
   <br>中文2 
   <br>中文3 
   <br>中文4 
   <br>中文5 
   <br>中文6
  </div>   
 </body>
</html>

这是 HTML 在浏览器中的样子。

如有任何意见/解决方案,我们将不胜感激。谢谢

如果我理解正确,你抱怨 iText 用于 html.

的前导(行间默认 space)

与默认情况下的浏览器相比,iText 考虑存储在字体文件中的升序和降序来计算行之间的行距。对于 iText 用来处理您的 html 的字体来说,它们似乎相当大,这导致了问题。

要克服它,可以使用 line-height 属性。我相信将它的值设置为 1em 会对你有所帮助。

我已将下一个 css 样式规则添加到您的 html 文件中:

div {
    line-height: 1em;
}

然后我使用了最新的 iText7(itextcore 和 html2pdf 都使用了 7.1.5-SNAPSHOT)并在更改前后处理了您的 html。现在请看结果

新html:https://pastebin.com/tFzdViyx

之前:

之后:

比较: