J'essaie d'imprimer du texte en utilisant ma soucoupe volante (https://xhtmlrenderer.dev.java.net). Le document est généré à l'aide de DOM-API, mais lorsque l'impression commence, il y a une exception 'contenu non autorisé dans prolog'. Quelle est la raison de cette exception?contenu interdit dans le prologue du document créé par DOM lors de l'impression à l'aide d'une soucoupe volante
Mon code est le suivant:
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));
La méthode d'impression prend imprimable et met en PrintJob.
Je n'ai pas vraiment de réponse, car cela ne semble pas être le cas, mais le "contenu non autorisé en prologue" est généralement causé par un espace qui est inséré avant le balisage. Je ne vois pas pourquoi cela se produirait ici, puisque vous travaillez avec un DOM. – erickson
Cela peut également être dû à l'apparition d'une marque d'ordre d'octets et à un problème comme la méthode d'impression qui ne le gère pas. Essayez de définir les options d'encodage. – xcut
@xcut Comment dois-je définir les options de nomenclature ou d'encodage? Le document n'est jamais sérialisé dans une chaîne ou un fichier par mon code. Les options d'encodage ont-elles vraiment de l'importance? – Wienczny