содержимое не допускается в прологе из документа, созданного DOM при печати с использованием летающей тарелки - PullRequest
1 голос
/ 07 сентября 2010

Я пытаюсь напечатать некоторый текст, используя мою летающую тарелку (https://xhtmlrenderer.dev.java.net).. Документ создается с использованием DOM-API, но когда начинается печать, возникает исключение «содержимое не разрешено в прологе». причина этого исключения?

Мой код такой:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder;
documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element html = document.createElement("html");
document.appendChild(html);
Element body = document.createElement("body");
html.appendChild(body);
for (String paragraph : paragraphs) {
    Element paragraphTag = document.createElement("p");
    paragraphTag.setTextContent(paragraph);
    body.appendChild(paragraphTag);
}
XHTMLPanel panel = new XHTMLPanel();
panel.setDocument(document);

print(new XHTMLPrintable(panel));

Метод печати берет Printable и помещает его в PrintJob.

1 Ответ

0 голосов
/ 18 сентября 2010

XHTMLPrintable не работает с документами, которые просто существуют в оперативной памяти. XHTMLPrintable пытается сгенерировать URL, используя данный документ. Этот URL-адрес затем используется в документе для Graphics2DRenderer - сбой. Затем я написал свой собственный XHTMLPrintable, который принимает Document вместо XHTMLPanel.

...