HTML-Text in reinen Text formatieren

BugsBastard

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem, ich habe einen Text der HTML-Elemente enthalten kann. Dieser Text soll jetzt mit hilfe von IText in ein PDF geschrieben werden. Soweit kein Problem, nur daß natürlich die HTML-Elemente mit in die Datei reingeschrieben werden.

"Normale" Elemente wie <b> oder <u> kann ich ja rausfiltern, bei Elementen wie Links wird es allerdings ein bisschen schwieriger, da die Links ja variabel sind. Nun wollte ich fragen ob es für Java schon Funktionen gibt, die HTML-Text aus einem Dokument herausformatieren oder ob ich das selbst programmieren muß. Wichtig wäre es, daß diese Formatierung im Programmverlauf angewendet werden kann, also kein Programm in das ich den Text eintrage und bei dem dann der Text ausgegeben wird.

Gruss und danke,

Bugs
 
Hi,

Du kannst mit einem Parser (SAXParser) auf diese Tags bzw. deren Inhalt reagieren. Such im Forum oder bei :google: mal nach SAXParser. Dann dürftest Du eine Menge Resultate erhalten. Hierbei werden Events bei einem startElement, endElement, characters,... ausgelöst.

Gruß

Romsl
 
Hallo,

danke für die schnelle Hilfe. Kurze Frage nochmal, SaxParser kenne ich, kann ich damit auch einen Text parsen der nicht komplett in HTML-Tags gesetzt wurde?

Kurz hierzu, ich brauche den Text einmal als HTML um ihn auf der Homepage anzuzeigen. Gleichzeitig soll der gleiche Text aber auch in ein PDF konvertiert werden.

Gruss,

Bugs
 
Hallo!

Schau mal hier:
Code:
/**
 * 
 */
package de.tutorials;

import java.net.URL;

import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

/**
 * @author Tom
 * 
 */
public class IgnoreHTMLExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {

        HTMLEditorKit editorKit = new HTMLEditorKit();
        URL url = new URL("http://www.tutorials.de");
        HTMLDocument htmlDoc = new HTMLDocument();
        editorKit.read(url.openStream(), htmlDoc, 0);
        System.out.println(htmlDoc.getText(0, htmlDoc.getLength()));
    }
}

Gruss Tom
 
Zurück