Как избежать добавления нежелательных пробелов в PDF, созданный с использованием pdfHtml?
Я использую pdfHtml iText для генерации PDF из HTML, но я вижу, что между двумя элементами в сгенерированном 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 в браузере.
Любые комментарии / решения будут оценены. Спасибо
1 ответ
Если я вас правильно понимаю, вы жалуетесь на лидирующую позицию (расстояние по умолчанию между строк), которую iText использует для вашего html.
По сравнению с браузерами по умолчанию iText считает, что по возрастанию и спуску хранятся в файле шрифта, чтобы вычислить начальное расстояние между строками. Кажется, что они довольно большие для шрифта, который iText использует для обработки вашего html, и это вызывает проблему.
Чтобы преодолеть это, можно поиграть со свойством line-height. Я считаю, что установка его значения в 1em поможет вам.
Я добавил следующее правило стиля CSS в ваш HTML-файл:
div {
line-height: 1em;
}
Затем я использовал последнюю версию iText7 (7.1.5-SNAPSHOT как для itextcore, так и для html2pdf) и обработал ваш html как до, так и после моих изменений. Теперь, пожалуйста, посмотрите на результаты
Новый HTML: https://pastebin.com/tFzdViyx
До:
После: