Hoje tive que converter vários documentos no formato RTF de um sistema legado para um novo sistema que vai utilizar arquivos HTML para esses documentos.
Como fiz uma busca rápida no google e não achei nada, fiz e resolvi compartilhar.. quem saber alguem não esta procurando por isso. 
No meu caso, os arquivos estavam gravados no banco de dados e por isso crieu um método que recebia uma string no formato RFT e retornava a mesma string no formato HTML.
- /**
- * Converte uma string no formato RTF para uma string no formato HTML.
- * @param rtf text
- * @return html text
- */
- public static String convertTextRTF2HTML(String text) {
- if (text == null) {
- return "";
- }
- StringReader reader = new StringReader(text);
- StringWriter writer = new StringWriter();
- RTFEditorKit rtfEditorKit = new RTFEditorKit();
- HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
- Document doc = rtfEditorKit.createDefaultDocument();
- try {
- rtfEditorKit.read(reader, doc, 0);
- htmlEditorKit.write(writer, doc, 0, doc.getLength());
- } catch (IOException ex) {
- Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
- } catch (BadLocationException ex) {
- Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
- }
- return writer.toString();
- }
Mas como não pode ser o caso de vocês, resolvi disponibilizar o a conversão por arquivos também. Ou seja, um método que ler um arquivo RTF e grava um arquivo HTML.
- /**
- * Converte um arquivo no formato RTF para arquivo no formato HTML.
- *
- * @param pathFileSource
- * @param pathFileTarget
- */
- public static void convertFileRTF2HTML(String pathFileSource, String pathFileTarget) {
- if (pathFileSource == null || pathFileTarget == null) {
- return;
- }
- try {
- File file = new File(pathFileSource);
- FileInputStream fi = new FileInputStream(file);
- FileOutputStream fo = new FileOutputStream(pathFileTarget);
- RTFEditorKit rtfEditorKit = new RTFEditorKit();
- HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
- Document doc = rtfEditorKit.createDefaultDocument();
- rtfEditorKit.read(fi, doc, 0);
- htmlEditorKit.write(fo, doc, 0, doc.getLength());
- fi.close();
- } catch (Exception ex) {
- Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
Para executar apenas faça uma fachamada ao método passando os parâmetros necessários.
- public static void main(String[] args) {
- convertFileRTF2HTML("c:\\file.rtf", "c:\\file.html");
- }
Caso não queira perder tempo, baixar o arquivo fonte Rtf2Html.java.

Posted by Dyego souza do carmo on Novembro 14, 2008 at 12:52 PM BRST #
Sei que o Editorkit está desatualizado e que não é grandes coisas.. só que me quebrou um galho na pressa.
Agora eu achei pouca coisa sobre esse scroogehtml e também acho que ele é um software proprietário só tinha disponível um demo.
Estou certo? É esse mesmo?
Valeu!
Posted by Alessandro Dourado on Novembro 17, 2008 at 10:15 AM BRST #
Posted by Luis on Janeiro 06, 2009 at 05:47 PM BRST #