Мой товарищ по команде придумал решение этой проблемы.Идея состоит в том, чтобы создать дерево элементов DefaultMutableTreeNode.Каждый из DefaultMutableTreeNode будет содержать PdfStructureElement.Дерево должно представлять иерархию XML, например, учитывать фрагмент кода XML в предыдущем комментарии.Первый DefaultMutableTreeNode должен иметь PdfStructureElement (PdfName - movies), чьим родителем является writer.getStructureTreeRoot ().Дочерним элементом этого узла должен быть другой PdfStructureElement (PdfName - movie), чьим родителем является PdfStrucutreElement с именем 'movies' и т. Д.
Как только упомянутые выше шаги выполнены (что по сути является разбором структуры), мы получаемдерево PdfStrucutreElements.Теперь нам нужно разобрать контент.Когда мы анализируем содержимое, нам нужно пройти через каждый из узлов дерева.Если анализируемый узел является листовым, то нам нужно получить элемент PdfStructureElement внутри этого узла.Иначе, если анализируемый узел является неконечным узлом, то нам нужно получить PdfName элемента PdfStructureElement в этом узле.Другими словами, мы можем просто использовать переменную qName.
</p>
<pre>
if(node is a leaf)
PdfStructureElement element=(PdfStructureElement)node.getUserObject();
canvas.beginMarkedContentSequence(element);
else
canvas.beginMarkedContentSequence(qName);
</pre>
<p>