HTML to PDF Konventieren

Status
Nicht offen für weitere Antworten.

FsMarine

Mitglied
Hallo,

ich bin verzweifelt, ich muss ein Programm das möglichst fehlerfrei ein HTML Dokument interpretiert und diese Interpretation in eine PDF schreibt.

Als erstes habe ich mir dafür den Reportmanager sowie den PDF schreiber von http://big.faceless.org angesehen...
musste aber feststellen, das ein dummer roter demo stempel immmer in der Mitte auftaucht... (ist ansonsten nach mein geschmack eine echt schöne libary)...

dann habe ich auf der seite http://128.146.118.49/ etwas über das die klasse Html2pdf gelesen die auf Itext aufbaut...

Super dachte ich mir, hab es ausprobiert, funktionierte, hab eine etwas komplexere html datei (nein kein browserseitigen script, nicht mal css nur eine tabelle) und bumm es funktionierte nicht mehr richtig...

dann habe ich mir gedacht es selber zu programmieren... und zum reinschreiben die APIs von Itext zu benutzen...

da stellt sich aber auch noch die frage ob ich für diese aufgabe sax benutzen kann... html und xml sind ja miteinander verwand...

und das ganz große problem bei der aufgabe ist den einzelnen tags und attribute die eigenschaften zuzuordnen die sie besitzen... das sind ja schließlich zich, und für jeden eine Klasse schreiben und es dann kompatibel mit Itext zu machen omg...

also ich wäre zu jeglicher hilfe zu dem Problem Dankbar, und sorry wenn das das falsche Forum ist, wusste aber nicht wo ich es besser zuordnen kann, schließlich besitzt html und xml die gleiche struktur.
 

FsMarine

Mitglied
ja, es kann aus einer xml datei eine pdf html oder was weiß ich erzeugen, aber nicht aus einer html eine pdf...

zumindestens weiß ich nicht wie, und finden konnte ich auch nichts...

wenn es anders ist sagt bitte bescheid, und gibt ein Hinweis...
danke...
 
G

Guest

Gast
IText hilft zwar weiter, (hab gerade herausgefunden das es eine klasse namens HtmlParser gibt)

Code:
    public static void main(String[] args) {
            	
        // Erzeugt eine Neue Dokument Instanz
        Document doc = new Document(PageSize.A4, 80, 60, 60, 60);
        

        
    	
    	try {
                       // Erzeugt ein PdfWriter in dem der Inhalt aus dem Dokument in die Datei xml3pdf.pdf   geschrieben wird

                        PdfWriter.getInstance(doc, new FileOutputStream("xml3pdf.pdf"));
                        // Parst die htmldatei und kopiert den Inhalt in die PDF
                        HtmlParser.parse(doc, "dasistWahr.htm");

               }
                catch (DocumentException e)
                {
                        e.printStackTrace();
                }
                catch(IOException e)
                {
                        e.printStackTrace();
                }
}

Das Problem ist das es nicht gerade flexibel ist mit dem HTML code, na ok das ist untertrieben...
der Interpretiert teilweise ganz anders als z.B. der InternetExplorer....

Beispiel:
Code:
<html>
<head>
<!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
!-->
</head>

<body>
<table width="200" border="0">
  <tr>
    <td>hier</td>
    <td>und</td>
  </tr>
  <tr>
    <td>da</td>
    <td><div align="center">das</div></td>
  </tr>
</table>
 ist [i]wahr haha [/i]
 <div align="center">das</div>
 <div align="right">[img]bla.JPG[/img]</img>
 </div>
</body>
</html>

Erstellt eine Tabelle die links orentiert ist eine Breite von 200 hat und kein Rand besitzt, direkt darunter ein text der
unterschiedlich zentriert ist (die attribute in den div tags) und wiederrum dadrunter wird die datei "bla" eingespielt und rechts zentriert....

im PDF sieht das nun so anders aus...

die Tabellenbreite bezieht sich auf das ganze Formular (width wird nicht akzeptiert)
die ausrichtung des textes und der bilder wird ignoriert (probleme mit dem tag align)
und das merkwürdigste das bild ist über dem Text (keine erklärung dafür...)

Es muss doch ein brauchbaren HtmlInterpreter geben....
 

FsMarine

Mitglied
Kennt ihr vielleicht nicht eine möglichkeit vielleicht aus einer HTML Datei (mit css) eine XML mit passendender DTD zu erstellen...

Weil es ja genug libarys gibt die aus einer XML mit DTD eine PDF machen können...

wobei, das vermutlich auch nicht möglich ist, weil ich dann bestimmt schon was im netz gefunden hätte...
 

sourcemaker

Mitglied
Hi,

wenn du eine Lösung finden solltest, dann sag bitte bescheid :)

Habe selbst alle gängigen mir bekannten Open-Source Projekte getestet,
wobei jedes mal das Ergebnis unbrauchbar wurde, sobald Tabellen im (X)HTML
Dokument vorhanden waren

Teilergebnisse sind möglich, sofern das XHTML über ein XSLT in ein
FO gerendert wird, welches danach mit der Apache FOP library in
ein PDF konvertiert werden kann.

Dieser Vorgang verbraucht allerdings extrem viel RAM und setzt vorraus,
dass alle XHTML Dokumente einen ähnlichen, nämlich dem im XSLT
berücksichtigen Aufbau haben.

Gruss
Sourcemaker
 

Bleiglanz

Gesperrter Benutzer
unter Linux würde ich einfach html2ps | ps2pdf über System.exec nehmen, weil man dann nichts proggen muss und das Ergebnis eh nur ein erster Ansatz ist

HTML2PDF in Java auszuprogrammieren ist eine wirklich gewaltige Aufgabe, hat bisher noch keiner gelöst, obwohl alle nötigen bestandteile vorhanden wären (htmlparser, fop, usw.)

aber allein das handling von bilder mit FOP ist nicht ganz einfach...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JAXB und HTML XML & JSON 1
T HTML mit Hilfe Jsoup einlesen XML & JSON 11
C javascript in .html Funktioniert, in .xhtml nicht mehr XML & JSON 0
M parsen von realen HTML-WEB-Seiten XML & JSON 1
P HTML XPath XML & JSON 1
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
1 Html tabelle auslesen??? XML & JSON 6
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
K docBook XSLT: HTML Code Snippet in Erzeugte HTML Dokument einfügen XML & JSON 9
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
R Problem bei: XML und XSL zu HTML XML & JSON 2
T Möchte JSP Code in Attribut eines HTML Tags hinein generieren XML & JSON 3
slawaweis XML Prettyprinter zu HTML XML & JSON 3
S Typsicherer HTML-Parser XML & JSON 5
S HTML Parser XML & JSON 2
F Probleme beim html parsen mit tagsoup XML & JSON 4
M HTML Quellcode verarbeiten XML & JSON 4
J DOM zu HTML XML & JSON 3
S DOM Parsen Problem mit HTML Sonderzeichen XML & JSON 4
A aus xml --> html Problem XML & JSON 3
M HTML-Entities XML & JSON 4
M Suche HTML-API XML & JSON 3
G Servlet mittels XSL in HTML konvertieren XML & JSON 5
K html -> cyberneko -> xml -> jdom . XML & JSON 3
S HTML mit dom4j parsen? XML & JSON 2
M TextContent eines XML-Elements enthält HTML-Tags . was nun XML & JSON 2
L mit Java eine HTML-Datei erstellen XML & JSON 3
B html->xslfo->pdf XML & JSON 5
G HTML in PDF umwandeln XML & JSON 9
P HTML Seite Parsen, und bestimmten Text extrahieren XML & JSON 3
J Exception bei "vorselektiertem" HTML XML & JSON 3
C HTML-Befehle per Java entfernen XML & JSON 7
P HTML-Sting in JDOM XML & JSON 7
G HTML -> XML XML & JSON 2
A html-File nach txt-File konvertieren XML & JSON 15
F XML Datei als HTML? XML & JSON 4
flashfactor HTML in XML XML & JSON 3
P HTML mit JDOM erstellen und in JEditorPane zeigen XML & JSON 4
B JDom + HTML XML & JSON 2
B DOM oder HTML File drucken "wie ein Browser es zeigen w XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben