JTidy проблема с номером элемента списка
Я сталкиваюсь со странной проблемой с Элементом Нумерованного Списка при создании PDF с использованием IText
, Серийный номер списка предметов не увеличивается на единицу при <br/>
тег добавлен. рассмотрим следующий пример:
String withoutBrTag = "<html><head></head><body><p>this is order list</p>" +
" <br>" +
" <ol>" +
" <li>lafjad</li>" +
" <li>alsdfkjla </li>" +
" <li>asdflkjadslfkj</li>" +
" </ol>" +
" <br>" +
" <p>list item ended</p> "+
"</body></html>";
String wihBrTag = "<html><head></head><body><p>this is order list</p>" +
" <br>" +
" <ol>" +
" <br>" +
" <li>lafjad</li>" +
" <br>" +
" <li>alsdfkjla </li>" +
" <br>" +
" <li>asdflkjadslfkj</li>" +
" <br>" +
" </ol>" +
" <br>" +
" <p>list item ended</p> "+
"</body></html>";
Tidy tidy = new Tidy();
tidy.setXmlOut(true);
tidy.setQuiet(true);
tidy.setShowWarnings(false);
OutputStream outputStream = new FileOutputStream("test1.pdf");
ByteArrayInputStream inputStream = new ByteArrayInputStream(withBrTag.getBytes());
Document doc = tidy.parseDOM(inputStream, null);
inputStream.close();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(outputStream);
Для струны withBrTag
выход:
this is order list
2. list item one
4. list item two
6. list item three
list item ended
Обратите внимание на нумерацию - 2, 4, 6
! каждый <br/>
тег анализируется как <li>
узел при выполнении tidy.parseDOM(inputStream, null)
, Поэтому нумерация меняется. Приборка разобрала html
неправильное содержание, что приводит к проблеме нумерации.
Но если я использую строку withoutBrTag
сгенерированный результат соответствует ожидаемому.
this is order list
1. list item one
2. list item two
3. list item three
list item ended
Может кто-нибудь объяснить, почему <br/>
тег считается </li>
тег и как это можно решить?
ПРИМЕЧАНИЕ 1: не только для <br/>
пометить изменения нумерации, но также для любого из html
пометить как - <p>, <i>, <hr/>
теги. Это означает, что если какой-либо тег добавляется непосредственно до или после <li>
тег, это повлияет на нумерацию.
ПРИМЕЧАНИЕ 2: используется itextpdf-2.0.1.