我正在使用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外观。
任何评论/解决方案将不胜感激。谢谢
答案 0 :(得分:0)
如果我理解正确,您会抱怨iText用于html的前导(行之间的默认空格)。
与浏览器相比,默认情况下,iText会考虑存储在字体文件中的升序和降序来计算行之间的行距。看来它们对于iText用于处理html的字体来说相当大,这导致了问题。
要克服它,可以使用 line-height 属性。我相信将其值设置为1em会有所帮助。
我已将下一个CSS样式规则添加到您的html文件中:
div {
line-height: 1em;
}
然后,我使用了最新的iText7(适用于itextcore和html2pdf的7.1.5-SNAPSHOT),并在更改前后都处理了您的html。现在请看结果