Преобразование HTML с упорядоченным списком и div с itextpdf

Я пытался преобразовать HTML-страницу с упорядоченным списком и некоторыми тегами div с itextpdf, но, похоже, это не сработало. Я создал следующую простую упорядоченную структуру списка в HTML, чтобы продемонстрировать проблему:

<!DOCTYPE html>
<html>

<head>
  <title>Insert title here</title>
</head>

<body>
  <!--  <div> -->
  <ol>
    <li>A
      <ol>
        <li>AA</li>
        <li>AB</li>
        <li>AC
          <ul>
            <li>ACA</li>
            <li>ACB</li>
          </ul>
        </li>
        <li>AD
          <ul>
            <li>ADA</li>
            <li>ADB</li>
          </ul>
        </li>
      </ol>
    </li>
  </ol>
  <!--  </div> -->
</body>

</html>

Пока все работает нормально, и я получаю правильный, хорошо отформатированный PDF. Однако когда я удаляю комментарий вокруг тега div, он больше не работает. Я получаю все элементы упорядоченного списка в одной строке, в результате файл PDF выглядит так:

  1. AAABAC ACAACBAD ADAADB

Мой метод для преобразования выглядит так:

    private void convertHtmlToPdf(String htmlFilePath, String generatedPdfFilePath) throws IOException, FileNotFoundException, DocumentException {
    String fileContent = FileUtils.readFileToString(new File(htmlFilePath));

    OutputStream file = new FileOutputStream(new File(generatedPdfFilePath));
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, file);
    document.open();
    InputStream is = new ByteArrayInputStream(fileContent.getBytes());
    XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
    document.close();
    file.close();
}

Так что это самый простой код преобразования. Я не использую CSS или вставляю картинки. Однако в моем реальном коде мне нужно использовать CSS для преобразования, и форматирование определяется с помощью элементов div. Поэтому я не могу просто удалить все div-ы, чтобы преобразование заработало.

Это ошибка, в itextpdf, или я что-то пропустил? У кого-нибудь есть идеи для обхода этой проблемы?

Я использую действительно последнюю (5.5.6) версию itextpdf.

1 ответ

    <!DOCTYPE html>
    <html>

    <head>
      <title>Insert title here</title>
    </head>

    <body>
     <div>
      <ol>
        <li>A
          <ol>
            <li>AA</li>
            <li>AB</li>
            <li>AC
              <ul>
                <li>ACA</li>
                <li>ACB</li>
              </ul>
            </li>
            <li>AD
              <ul>
                <li>ADA</li>
                <li>ADB</li>
              </ul>
            </li>
          </ol>
        </li>
      </ol>
     </div>
    </body>

    </html>

этот код должен работать, попробуйте

Другие вопросы по тегам