Ich habe Probleme beim Erstellen einer PDF-Datei mit dem einfachen Beispiel hier . Es ist das erste Mal, dass ich versuche, es zu benutzen, und ich habe ein paar Dinge ausprobiert und viel gesucht, aber keinen Grund gefunden, warum der Fehler erzeugt wird. Der Fehler stammt von der Zeile renderer.setDocument(url);
. Wenn jemand irgendwelche Ideen, Vorschläge oder Alternativen hat, würde es sehr geschätzt werden.
Die Konsole druckt den folgenden Fehler aus.
%Vor%renderer.setDocument kann eine "Stream geschlossen" -Ausnahme auslösen, wenn die xhtml auf eine Datei verweist, die der Renderer nicht finden kann, wie etwa eine CSS-Datei.
Die Symptome stimmen nicht exakt mit den Originalplakaten überein, da "XML-Ressource nicht laden" nicht in der Fehlermeldung erscheint, ich nehme dies zum Vorteil derjenigen auf, die über Google hierher kommen.
Ist "samples / firstdoc.xhtml" die Datei aus dem Tutorial? Ist es im richtigen Verzeichnis und zugänglich? XHTMLRenderer akzeptiert nur sauberen XHTML-Code und ist sehr streng. Wenn etwas nicht stimmt, erhalten Sie eine Ausnahme.
In einigen meiner Projekte verwende ich JTidy , um die Quelle vor dem Rendern zu bereinigen.
Was tatsächlich hier passiert, ist, dass der setDocument(...)
-Aufruf ausgeführt wird und renderer
kein InputStream
öffnen kann (normalerweise, weil entweder die Datei nicht existiert oder die Zugriffsrechte nicht ausreichen). Die Lösung wäre, diese Referenz durch eine File
oder eine Live-URL zu ersetzen, die die App treffen kann.
Tags und Links java stream flying-saucer pdf-generation