Latest Articles

Gerencie seus projetos com NB Project .

Eu Recomendo

Navigation

Calendar

    « Janeiro 2009
    SegTerQuaQuiSexSábDom
       
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
           
    Today

Tag Cloud

Links

    • JavaBahia
    • NB Project
    • TI na Bahia

Stats

  • Today's hits: 578
  • Posts: 53
  • Comments: 31
  • Created: 08/2008
  • Updated: 07/Jan/2009


Convertendo arquivos RTF para HTML com JAVA

Posted on Novembro 14, 2008 by Alessandro Dourado in Java

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.

  1. /**
  2. * Converte uma string no formato RTF para uma string no formato HTML.
  3. * @param rtf text
  4. * @return html text
  5. */
  6. public static String convertTextRTF2HTML(String text) {
  7. if (text == null) {
  8. return "";
  9. }
  10. StringReader reader = new StringReader(text);
  11. StringWriter writer = new StringWriter();
  12. RTFEditorKit rtfEditorKit = new RTFEditorKit();
  13. HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
  14. Document doc = rtfEditorKit.createDefaultDocument();
  15. try {
  16. rtfEditorKit.read(reader, doc, 0);
  17. htmlEditorKit.write(writer, doc, 0, doc.getLength());
  18. } catch (IOException ex) {
  19. Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
  20. } catch (BadLocationException ex) {
  21. Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
  22. }
  23. return writer.toString();
  24. }

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.

  1. /**
  2. * Converte um arquivo no formato RTF para arquivo no formato HTML.
  3. *
  4. * @param pathFileSource
  5. * @param pathFileTarget
  6. */
  7. public static void convertFileRTF2HTML(String pathFileSource, String pathFileTarget) {
  8. if (pathFileSource == null || pathFileTarget == null) {
  9. return;
  10. }
  11. try {
  12. File file = new File(pathFileSource);
  13. FileInputStream fi = new FileInputStream(file);
  14. FileOutputStream fo = new FileOutputStream(pathFileTarget);
  15. RTFEditorKit rtfEditorKit = new RTFEditorKit();
  16. HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
  17. Document doc = rtfEditorKit.createDefaultDocument();
  18. rtfEditorKit.read(fi, doc, 0);
  19. htmlEditorKit.write(fo, doc, 0, doc.getLength());
  20. fi.close();
  21. } catch (Exception ex) {
  22. Logger.getLogger( Rtf2Html.class.getName()).log(Level.SEVERE, null, ex);
  23. }
  24. }

Para executar apenas faça uma fachamada ao método passando os parâmetros necessários.

  1. public static void main(String[] args) {
  2. convertFileRTF2HTML("c:\\file.rtf", "c:\\file.html");
  3. }

Caso não queira perder tempo, baixar o arquivo fonte Rtf2Html.java.



Comments:

Existe um framework que jah faz isso tudo e sem depender do EditorKit(que eh uma porcaria de desatualizado) chame-se scroogehtml :)

Posted by Dyego souza do carmo on Novembro 14, 2008 at 12:52 PM BRST #

Dyego,
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 #

Funcionando quase perfeito... como faço pra forçar ficar uma fonte quando gera o html?

Posted by Luis on Janeiro 06, 2009 at 05:47 PM BRST #

Post a Comment:
  • HTML Syntax: Allowed