html-Text mit Formatierung in String speichern

Herr Kaiser

Bekanntes Mitglied
Hallo Forum,

ich möchte einen formatierten html-Text als String speichern, so dass die Formatierungsinformationen erhalten bleiben.

Zum Testen habe ich die zwei JEditorpPanes epQuelle und epZiel erstellt. In der Quelle formatiere ich den Text (funktioniert), in Zeile 38 packe ich ihn in einen String, um ihn dann ins epZiel einzufügen. Der Text erscheint dort, allerdings unformatiert. Offensichtlich werden die Formatierungs-Tags mittels doc.getText verschluckt. Ich habe es auch mit epQuelle.getText und epQuelle.getDocument().getText versucht. In Zeile 43 habe ich auch epZiel. setText probiert. Das hat alles nichts gebracht.

Was mache ich hier falsch? :oops:

Java:
public static void test() {

    // Vorbereitung
    HTMLEditorKit html = new HTMLEditorKit();
    SimpleAttributeSet atts = new SimpleAttributeSet();
    epQuelle.setContentType("text/html");
    epQuelle.setEditorKit(html);
    epZiel.setContentType("text/html");
    epZiel.setEditorKit(html);
    StyledDocument doc = (StyledDocument) epQuelle.getDocument();

    // Text in Quelle einfuegen
    try {
        epQuelle.getDocument().insertString(0, "fett kursiv unterstrichen", null);
    } catch (Exception e) {
        System.out.println("Fehler" + e);
    }

    // Formatierungen
    epQuelle.setSelectionStart(0);
    epQuelle.setSelectionEnd(4);
    StyleConstants.setBold(atts, true);
    doc.setCharacterAttributes(epQuelle.getSelectionStart(), epQuelle.getSelectionEnd() - epQuelle.getSelectionStart(), atts, false); // fett
    epQuelle.setSelectionStart(5);
    epQuelle.setSelectionEnd(12);
    StyleConstants.setBold(atts, false);
    StyleConstants.setItalic(atts, true);
    doc.setCharacterAttributes(epQuelle.getSelectionStart(), epQuelle.getSelectionEnd() - epQuelle.getSelectionStart(), atts, false); // kursiv
    epQuelle.setSelectionStart(12);
    epQuelle.setSelectionEnd(25);
    StyleConstants.setItalic(atts, true);
    StyleConstants.setUnderline(atts, true);
    doc.setCharacterAttributes(epQuelle.getSelectionStart(), epQuelle.getSelectionEnd() - epQuelle.getSelectionStart(), atts, false); // unterstrichen

    // Text in String speichern und einfuegen
    String htmlText = "";
    try {
        htmlText = doc.getText(0, doc.getLength());
    } catch (Exception e) {
        System.out.println("Fehler" + e);
    }
    try {
        epZiel.getDocument().insertString(0, htmlText, null);
    } catch (Exception e) {
        System.out.println("Fehler " + e);
    }
}
 
G

Gastredner

Gast
Was mache ich hier falsch? :oops:
Was willst du erreichen?`Soll JEditorPane automatisch die benötigten Tags für fett, kursiv, etc. einsetzen und den sich dadurch ergebenden String willst du dann ändern, oder willst du einen HTML-String formatieren, quasi wie ein Editor mit Syntax-Highlighting für HTML?
Ersteres dürfte so nicht funktionieren und du müsstest selbst die entsprechenden Tags einfügen, letzteres sollte sich dadurch erreichen lassen, dass du das StyledDocument statt des Strings speicherst.
 

Herr Kaiser

Bekanntes Mitglied
Sorry, ich muss das Thema doch noch einmal aufmachen.
Ich möchte den formatierten Text zwischenspeichern und habe festgestellt, dass sich das StyleDocument dazu logischerweise nicht eignet, weil es sich ja ändert, sobald sich der Inhalt des zugrundeliegenden EditorPanes ändert.

Ich müsste also doch irgendwie an den String kommen, der den formatierten html-Text enthält. Wenn ich also "fett kursiv unterstrichen" in das Editorpane schreibe, müsste ich eine Methode finden, die mir dann ungefähr folgenden String zurückgibt:

<html> <head> </head> <body> <p style="margin-top: 0"> <b>fett</b> <i>kursiv</i> <u>unterstrichen </u> </p> </body></html>

Ich kriege das derzeit nur über Umwege hin, indem ich den Inhalt des EditorPanes mit der Methode EditorKit.write in ein file schreibe und anschließend diese Datei in einen String einlese, Aber das ist vermutlich unnötig kompliziert und nicht sonderlich performant.

Kann mir jemand sagen, wie ich auf direkterem Weg an obigen html-Code herankomme?
 

Herr Kaiser

Bekanntes Mitglied
Ich hab's mir jetzt so hingebastelt:

Java:
private String htmlToString(HTMLEditorKit ek, StyledDocument doc) {

    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    try {
        ek.write(bout, doc, 0, doc.getLength());
    } catch (Exception e) {
        System.out.println(e);
    }
    return bout.toString();
}

Wenn's noch simpler geht (ganz ohne Umweg über einen OutputStream), lasst es mich ruhig wissen. Ansonsten funktioniert diese Lösung schonmal ganz gut. Danke für's Gedankenmachen! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
S Text aus HTML Datei in TXT Datei Java Basics - Anfänger-Themen 19
M HTML Datei als Text rausspeichern Java Basics - Anfänger-Themen 3
orkano Text einer remote-HTML Seite auslesen Java Basics - Anfänger-Themen 3
J Text aus HTML einlesen Java Basics - Anfänger-Themen 3
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
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 HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben