Может ли itext конвертировать html в pdf?

#html #itext

#HTML #itext

Вопрос:

Может ли itext конвертировать html в pdf. Не весь экран, а что-то вроде этого: на экране есть поле свободной формы, в котором пользователь может ввести что-то вроде этого предложения, заключенного в HTML-теги. Это поле свободной формы, в котором необходимо выделить (выделенный жирным шрифтом тег здесь) важные вещи жирным шрифтом (завершающий жирный тег здесь), но ничего больше жирным шрифтом. Мне нужно будет получить эту информацию с экрана в том виде, в каком она была введена, и мне нужно создать отчет, который будет включать ее, но должен выглядеть так: это поле свободной формы, в котором важные данные выделены жирным шрифтом, но больше ничего не выделено жирным шрифтом. Есть ли у itext что-то, что делает это?

Ответ №1:

В старых версиях itext вы можете использовать HTMLWorker, но теперь он устарел. Теперь вы должны использовать класс XMLWorkerHelper и его метод parseXHtml.

         try {
          Document document = new Document(PageSize.LETTER);
          PdfWriter pdfWriter = PdfWriter.getInstance
               (document, new FileOutputStream("c://test.pdf"));
          document.open();
          document.addTitle("test iText");

          XMLWorkerHelper worker = XMLWorkerHelper.getInstance();

          String str = "<html><head></head><body>" 
            "<h1>This is a title</h1>"  
            "<p>This is a paragraph</p>"  
            "</body></html>";
          worker.parseXHtml(pdfWriter, document, new StringReader(str));
          document.close();
          System.out.println("You should find you PDF in c:");
          }
        catch (Exception e) {
          e.printStackTrace();
        }
  

Надеюсь, это поможет!

Ответ №2:

Я попробовал это некоторое время назад, и я должен сказать, что это не лучший вариант для преобразования PDF в HTML. Сначала я подумал, что мой PDF-файл был плохо отформатирован из-за CSS, но даже без CSS он выглядел плохо. Поэтому лично для меня я бы сказал, что iText конвертирует HTML в PDF, но его поддержка таблиц стилей сомнительна. Опять же, я могу ошибаться из-за недавних обновлений.