Soyez le premier à donner votre avis sur cette source.
Snippet vu 23 678 fois - Téléchargée 34 fois
import javax.swing.*; import javax.swing.text.*; import javax.swing.text.rtf.*; import javax.swing.text.html.*; import java.io.*; public class RtfToHtml { public static String convertRtfToHtml(final String txt) { final RTFEditorKit rtf_edit = new RTFEditorKit(); final JTextPane jtp_rtf = new JTextPane(); final JTextPane jtp_html = new JTextPane(); final StyleContext rtf_context = new StyleContext(); final DefaultStyledDocument rtf_doc = new DefaultStyledDocument(rtf_context); jtp_rtf.setEditorKit(rtf_edit); jtp_rtf.setContentType("text/rtf"); jtp_html.setContentType("text/html"); try { rtf_edit.read(new StringReader(txt),rtf_doc,0); jtp_rtf.setDocument(rtf_doc); jtp_html.setText(rtf_doc.getText(0,rtf_doc.getLength())); HTMLDocument html_doc = null; for (int i = 0; i < rtf_doc.getLength(); i++) { AttributeSet a = rtf_doc.getCharacterElement(i).getAttributes(); AttributeSet p = rtf_doc.getParagraphElement(i).getAttributes(); String s = jtp_rtf.getText(i, 1); jtp_html.select(i, i+1); jtp_html.replaceSelection(s); html_doc = (HTMLDocument)jtp_html.getDocument(); html_doc.putProperty("",""); html_doc.setCharacterAttributes(i,1,a,false); MutableAttributeSet attr = new SimpleAttributeSet(p); html_doc.setParagraphAttributes(i,1,attr,false); } StringWriter writer = new StringWriter(); final HTMLEditorKit html_edit = new HTMLEditorKit(); html_edit.write(writer,html_doc,0,html_doc.getLength()); return writer.toString(); } catch (Exception ex) { return "Erreur rtf: " + ex.toString(); } } };
17 juin 2005 à 11:57
j'ai un jtextpane qui contient du texte en gras, souligné, de tailles differentes et des images. et j'aimerais que tout ca se transforme en code html.
j'ai utilisé ce code mais je n'y arrive pas. g changé qq trucs :
public String convertRtfToHtml(final JTextPane jtp_rtf) {
final RTFEditorKit rtf_edit = new RTFEditorKit();
//final JTextPane jtp_rtf = new JTextPane();
final JTextPane jtp_html = new JTextPane();
final StyleContext rtf_context = new StyleContext();
final DefaultStyledDocument rtf_doc = new DefaultStyledDocument(rtf_context);
jtp_rtf.setEditorKit(rtf_edit);
jtp_rtf.setContentType("text/rtf");
jtp_html.setContentType("text/html");
try {
int fin = jtp_rtf.getDocument().getLength();
rtf_edit.read(new StringReader(jtp_rtf.getDocument().getText(0,fin)),rtf_doc,0);
le reste est le meme ! mais ca plante quand ca arrive a la derniere ligne que j'ai ecrite. voilou si quelqu'un a une idée thanx d'avance
bonne journée
Obi
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.