HTML in PDF konvertieren?

Status
Nicht offen für weitere Antworten.

magic_halli

Bekanntes Mitglied
Hi,

ich habe einen String, welcher HTML-Tags beinhaltet. Ist es irgendwie möglich, HTML in leserliches PDF-Format zu konvertieren (mittels einer Java-API o.ä.)?

Danke und Gruß
 

magic_halli

Bekanntes Mitglied
Mit iText habe ich schon gearbeitet, aber meines Wissens geht das nicht dafür, denn der HTML-Content würde hierbei 1:1 als PDF geschrieben und nicht konvertiert! Will heißen: Ich sehe auch hierbei die HTML-Tags im PDF. Diese sollen aber, für den User, leserlich wie in einer HTML-Page umgewandelt und dann als PDF gespeichert werden!
 

lhein

Top Contributor
Hier mal ein Ausschnitt aus einer Mailing Liste:

MMarcavage (at) AndersonTechs.com wrote:
> Is there a way to convert HTML files to a PDF doc using the iText Jar file?
> I did not see any examples if you can

iText isn't really made to convert HTML to PDF.
There are classes that can help you like HTMLWorker,
but there's no full blown HTML parser.

You'll find some thought about HTML to PDF conversion in
the FAQ: http://itext.ugent.be/library/question.php?id=40

best regards,
Bruno

und noch was:
Tutorial

evtl. auch das hier:
Apache FOP
wobei das soweit ich es auf den ersten Blick sehen konnte ein FO braucht als Input.

Vielleicht hilft es Dir ja. Sonst bleibt evtl. noch eine kommerzielle Lösung.

lhe
 

magic_halli

Bekanntes Mitglied
Ich hab´s jetzt erstmal im groben gelöst - mittels iText! (wieder was dazugelernt :### )

Code:
String htmlString = "<h1>Ãœberschrift-h1</h1>
<h4>Ãœberschrift-h4</h4>" +
    						"<table border=1><tr><td>Testzeile1</td></tr><tr><td>Testzeile2</td></tr></table>" +
    						"Text ohne HTML-Tags
" +
    						"[url="http://www.cad.de"]Link[/url]

" +
    						"<HTML>" +
    						"<HEAD><TITLE>Foren auf CAD.de, Pro ENGINEER</title>" +
    						"<META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=ISO-8859-1>" +
    						"</HTML>";
    		
    	// create the document
    	com.lowagie.text.Document document = new com.lowagie.text.Document(PageSize.A4, 80, 50, 30, 65 );
    	
    	// get mem stream
    	FileOutputStream fos = new FileOutputStream( "C:\...\test.pdf" );
	    BufferedOutputStream ms = new BufferedOutputStream(fos);
    	
    	// need the PdfWriter for some settings
    	PdfWriter myWriter = PdfWriter.getInstance(document, ms);
    	
    	// this is for letting the memory stream open when closing the document
    	myWriter.setCloseStream(false);
    	
    	document.open();
    	
    	HTMLWorker worker = new HTMLWorker(document);
    	StringReader sReader = new StringReader(htmlString);
    	
    	// get the list of tags in the html document
    	ArrayList list = HTMLWorker.parseToList(sReader,null);
    	PdfContentByte byt = myWriter.getDirectContent();
    	
    	// need columnText to automatically jump to a new line if end of Line is reached
    	ColumnText text = new ColumnText(byt);
    	text.setSimpleColumn( document.left(),document.bottom(),document.right(),document.top() );
    	for(int i = 0; i<list.size() ; i++){
    		text.addElement((com.lowagie.text.Element)list.get(i));
    	}
    	
    	// write the elements to the document…
    	text.go();
    	document.close();
Das Grundgerüst habe ich, ziemlich unangepasst, im Netz gefunden und dann etwas umgeschrieben. Somit erzeugt es mir aus einem InputString eine PDF, in der die HTML-Tags konvertiert ausgegeben werden. Toll. :wink:

Danke und Gruß
 

magic_halli

Bekanntes Mitglied
Also der Code funktioniert erstmal, ABER:
Wenn mein Eingangsstring mehr Text als eine A4-Seite beinhaltet, wird keine 2. Seite erstellt!
Ich bekomme immer nur ein PDF mit einer Seite heraus - der restliche Text wird dann einfach unterschlagen!

Hat jemand ne Ahnung, wie ich mehrere Seiten erstellen kann??? Ich finde dazu einfach keinerlei Doku bzw. Erklärungen. :cry:

Danke und Gruß
 

lhein

Top Contributor
Code:
// need columnText to automatically jump to a new line if end of Line is reached
       ColumnText text = new ColumnText(byt);
       text.setSimpleColumn( document.left(),document.bottom(),document.right(),document.top() );
       for(int i = 0; i<list.size() ; i++){
          text.addElement((com.lowagie.text.Element)list.get(i));
       }

Denke mal, dass Du den Seitenumbruch irgendwie mit erstellen musst.
Im Moment scheinst Du ja einfach nur 1:1 alles auf die erste Seite zu kippen, egal ob es
drauf passt oder nicht.
 

magic_halli

Bekanntes Mitglied
Denke mal, dass Du den Seitenumbruch irgendwie mit erstellen musst.
Im Moment scheinst Du ja einfach nur 1:1 alles auf die erste Seite zu kippen, egal ob es
drauf passt oder nicht.
Genau so ist es wahrscheinlich!

Weiß jemand wie ich in iText überhaupt irgendwie nen Seitenumbruch mache bzw. das Schlagwort für Seitenumbruch, damit ich mir die Infos ggf. aus der Doku ziehen kann???


Gruß
 
M

meinereiner

Gast
Hallo,

hat jemand Erfahrungen mit URLs in PDF umwandeln?
Ich habe es schon mit diversen Libs probiert, allerdings mirt mäßigem Erfolg, da diese alle nicht 100%ig HTML-konform sind.
Es gibt ja noch eine Anzahl weiterer die selbige Funktionen zur Verfügung stellen sollen. Allerdings bringe ich es nicht hin. Selbst bei http://www.google.de bekomme ich Fehler. Ich vermute das liegt daran, dass der Parser (in den meisten Fällen SAX) zu sensibel ist.

Hat jemand eine andere Lösung?

Gruß
meinereiner
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
I HTML Code säubern Java Basics - Anfänger-Themen 4
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
E HTML in Java einbinden oder JavaScript? Java Basics - Anfänger-Themen 5
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
krgewb Input/Output Umlaute in generierter HTML-Datei Java Basics - Anfänger-Themen 7
N Status-Log - HTML Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
B HTML Code drucken Java Basics - Anfänger-Themen 4
D HTML Manipulation Navigation Java Basics - Anfänger-Themen 1
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
M Java und Html Java Basics - Anfänger-Themen 4
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
T Ausgabe in HTML :( Java Basics - Anfänger-Themen 19
F HTML Datei in .jar speichern und abändern Java Basics - Anfänger-Themen 2
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
T HTML-Inputbox ansteuern Java Basics - Anfänger-Themen 4
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
I HTML in String wandeln? Java Basics - Anfänger-Themen 1
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
I jar-Datei in HTML einbinden Java Basics - Anfänger-Themen 6
O HTML -> BBCode Parser? Java Basics - Anfänger-Themen 3
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
H Schnell HTML-Tags finden Java Basics - Anfänger-Themen 5
H Welcher Html-Parser? Java Basics - Anfänger-Themen 8
G Probleme beim HTML auslesen Java Basics - Anfänger-Themen 6
J Html zugriff - POST Request/Response Java Basics - Anfänger-Themen 4
A HTML-Code auslesen und mit einem Wert in der property-Datei vergleichen Java Basics - Anfänger-Themen 2
Z Input/Output HTML-Seite einlesen Java Basics - Anfänger-Themen 4
H Interface JTextPane html formatiert kopieren Java Basics - Anfänger-Themen 2
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
D Wie den HTML-Teil des Chat Tutorials aus dem FAQ-Bereich starten? Java Basics - Anfänger-Themen 5
C Link wie bei HTML Java Basics - Anfänger-Themen 7
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
C Java in HTML einbinden Java Basics - Anfänger-Themen 2
N Website HTML mit JavaScript abrufen Java Basics - Anfänger-Themen 9
R JSON - Ausgabe als HTML mit gson Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
S Lightbox Script vs. Taco HTML Script Java Basics - Anfänger-Themen 4
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
S HTML Regularer Expression Java Basics - Anfänger-Themen 20
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
D Html Formular auswerten Java Basics - Anfänger-Themen 8
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
eLogic Einlesen von HTML-Source Java Basics - Anfänger-Themen 6
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
H html-Text mit Formatierung in String speichern Java Basics - Anfänger-Themen 4
S Java und HTML- Drop Down- Mehrfachauswahl Java Basics - Anfänger-Themen 3
A execute jar from html Java Basics - Anfänger-Themen 6
D Interpreter-Fehler JavaApplet läuft in der IDE aber nicht im HTML Dokument Java Basics - Anfänger-Themen 9
StupidAttack Html Code durchsuchen Java Basics - Anfänger-Themen 2
T Servlet HTML-Formular Java Basics - Anfänger-Themen 9
TheKing HTML Formular mit Java ausfüllen und absenden Java Basics - Anfänger-Themen 9
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4
C einfacher Link zu *.html Datei möglich? Java Basics - Anfänger-Themen 4
V javascript und HTML: hoch 2 Java Basics - Anfänger-Themen 2
M index.html fehlt Java Basics - Anfänger-Themen 12
3 Eine HTML Datei in eine Java Datei umschreiben Java Basics - Anfänger-Themen 23
Weltall 7 Applet in HTML einbinden Java Basics - Anfänger-Themen 3
A Java in Html einbinden Java Basics - Anfänger-Themen 2
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
sylo Auf HTML-Dateien in einer Jar zugreifen Java Basics - Anfänger-Themen 9
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
I CSV Datei auf HTML Seite hochladen und in DB laden Java Basics - Anfänger-Themen 9
K html to pdf Java Basics - Anfänger-Themen 6
D String aus Html (sonderfall) Java Basics - Anfänger-Themen 9
F html editor Java Basics - Anfänger-Themen 5
A html parser Java Basics - Anfänger-Themen 5
G HTML Seite generieren Java Basics - Anfänger-Themen 2
S Text aus HTML Datei in TXT Datei Java Basics - Anfänger-Themen 19
U HTML-String zusammenbauen Java Basics - Anfänger-Themen 4
P Datentypen HTML Dokument speichern (Netbeans) Java Basics - Anfänger-Themen 10
S kreative Schlaue funktion für optionsfeld (html) gesucht... Java Basics - Anfänger-Themen 4
P Applet: URL an html übergeben Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben