URL/HTML to PDF?

Hallo alle zusammen,

ich versuche schon seit einigen Tagen den Inhalt einer Homepage, gegeben durch eine URL in eine PDF zu wandeln leider mit mäßigem Erfolg.

Ich habe es schon mit iText probiert (http://www.lowagie.com/iText).
Mit xhtmlrenderer bzw flyingsourcer soll es auch gehen (https://xhtmlrenderer.dev.java.net/) ich bekomme ea aber leider nicht hin.
Ich scheitere immer am Parsen der Datei, dass ich diese dem PDF-Erzeuger übergeben kann.

Hat jemand schonmal so etwas hinbekommen und könnte mir ein paar Tipps geben? Habe schon zwiemlich viel gegoogelt aber weniger brauchbares gefunden, ich immer wieder in einen Fehler beim Parsen laufe (auch bei unterschiedlichen Seiten).

Würde mich über Hilfe sehr freuen.

Gruß
meinereiner
 
Hallo,

ich melde mich nochmal da ich eben noch etwas vergessen habe.
Ich habe mich auch mit Apache FOP-Projekt auseinandergesetzt. Das Problem ist immer das gleiche: Immer haut der SAX-Parser beim parsen in einen Fehler.
Selbst bei google.de und ähnlichem!

Ich bekomme immer Fehler wie:
[Fatal Error] :462:119: The entity name must immediately follow the '&' in the entity reference.
[Fatal Error] frameset.dtd:21:3: The declaration for the entity "HTML.Version" must end with '>'.

Was kann da nicht stimmen? Klar ist ein Browser vielleicht nicht so "empfindlich" aber irgendwie verarbeiten muss er das ja auch!

Würde mich sehr freuen, wenn mir jemand einen Tipp geben könnte.

Danke und Gruß
meinereiner85
 
Hallo,

ja das stimmt, genauso wie vermutlich einer beim der zweiten Fehlermeldung nicht alle Tags vernünftig geschlossen hat.

Alles im Allem kann man sagen, dass es eben programmierfehler sind.

Aber wie bringe ich dem SAX-Parser in der Konstellation bei, dass er nicht salles so genau nehmen soll?

Gruß
meinereiner
 
Ich lasse den HTML-Wust zunächst mal durch JTidy laufen und stell dort auf XHTML...funktioniert meistens ganz gut.
Leider kenne ich keinen SAX-Parser den man so einstellen könnte dass er es nicht so genau nimmt, nicht konform ist dann leider nicht konform.
 
Hallo,

Danke für deine Antwort.

Ich bin mittlerweile auch nach ettlichen Nachtschichten weitergekommen.
Ich habe auch schon gelesen, dass man mit JTidy am besten alles in XHTML umwandelt (ich verfahre dann mit XHTML weiter mit flyingsaucer-R7final-src):

Code:
       File inputFile = new File("tmpdoc.xhtml");
        FileOutputStream wr = new FileOutputStream(inputFile);
        if (!xhtml) { 
            Tidy tidy = new Tidy();
            Document xmlDoc = tidy.parseDOM(new ByteArrayInputStream(htmlCode.toString().getBytes()),
                    wr);
        } else {
...
            }

        }
        wr.close();

Allerdings habe ich mir mal den Inhalt nach dem rasen mit JTidy (parseDom) angesehen und für mich sieht das mehr noch nach HTML wie XHTML aus. Kannst du mir vielleicht mit ein paar Codezeilen weiterhelfen?

Eins ahbe ich noch vergessen: Wenn ich parse statt parseDom nehme bekomme ich zwar Code der nach XHTML aussieht aber leider nicht vollkommen XHTML-Konform zu sein scheint! Zumindest laufe ich in Fehler, wenn ich diesen dann versuche weiter zu verarbeiten!

Gruß
meinereiner
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück