Как избежать добавления нежелательных пробелов в PDF, созданный с использованием pdfHtml? - PullRequest
0 голосов
/ 09 января 2019

Я использую pdfHtml из iText для генерации PDF из HTML, но я вижу, что между двумя элементами в сгенерированном PDF добавлено много пробелов.

Пожалуйста, смотрите ниже HTML и PDF

Выделенная часть на изображении ниже показывает нежелательные пробелы между двумя строками.

space between two below lines.

Ниже приведен исходный контент 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 в браузере.

HTML looks perfect in browser

Любые комментарии / решения будут оценены. Спасибо

1 Ответ

0 голосов
/ 09 января 2019

Если я вас правильно понимаю, вы жалуетесь на начальный (по умолчанию интервал между строками), который 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

До: enter image description here

После: enter image description here

Сравнение: enter image description here

...