conversão Rtf para html, problemas de codificação

0 respostas
S

Boa noite !

Estou pegando um texto rtf do banco e convertendo para html.

O problema é que a com a forma que eu encontrei para fazer essa conversão, estou com problemas de codificação que não sei resolver, pois as acentuações não estão vindo na conversão…

Se eu tiro o rtf do banco e uso o FileOutputStream pra gravar um arquivo rtf, ele vem todo certinho, porém na conversão… não vem a acentuação, no lugar vem caracteres estranhos, e eu apesar de estar lendo as api’s envolvidas nisso ae, não consegui encontrar onde posso configurar isso! Se puderem me ajudar, agradeço!

vai o código:

public void buscarTodos() throws FileNotFoundException,IOException{  
      conectar(ConFactory.Sqlite);  // Ao buscar dados, conectar no firebird
      ArrayList<Alternativas> resultados = new ArrayList<Alternativas>();  
      ResultSet rs; 
      
      Rtf rtf = new Rtf();   //classe que converte de rtf para html, inclusive peguei ela aqui num 
                                     //tópico do guj.
      byte[] b = null;
      try {  
         rs = comando.executeQuery("select DS_COMENT FROM pol012");  
         //while (rs.next()) {  
                  
             rs.next();           
             b = rs.getBytes("DS_COMENT");
             String html = new String(b,"UTF-8");
             String convertida = rtf.convertTextRTF2HTML(html);
             FileWriter fw = new FileWriter(new File("c:\\teste.html"));
             BufferedWriter bw = new BufferedWriter(fw);
             bw.write(convertida);
             bw.flush();
             bw.close();
            
             //java.io.File file = new java.io.File("c:\\coment.rtf");  Comentei pq só usei pra teste de gravação do rtf 
             //FileOutputStream in = new FileOutputStream(file) ;    
             //in.write(b); 
             //in.close();

E a classe que eu uso pra converter

public class Rtf {
   
    public 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.error("Erro na conversão de RTF2HTML.", ex);  
    } catch (BadLocationException ex) {  
        //logger.error("Erro na conversão de RTF2HTML.", ex);  
    }  
    return writer.toString();  
}  
        }

Obrigado pela força ae!

Criado 27 de fevereiro de 2013
Respostas 0
Participantes 1