Ler conteudo do arquivo RTF

1 resposta
T

Ola Pessoal

Preciso ler o conteudo de um arquivo rtf (com suas devidas formatações), e inserir este texto em um componente (JTextArea , JTextPane) também aparecendo de maneira formatada.

Alguma idéia ?

Tive olhando a api RTFEditorKit, mas não entendi seu funcionamento, procuro algum tutorial a respeito desta api. Ou mesmo indica outra api ou classe ?

Obrigado

1 Resposta

T

Consegui uma classe aki na Web, que consegue ler os arquivos RTF, entretanto a formatação ( negrito, tamanho de letra eh perdida ).

Não sei se isto se deve a classe ou ao componente JTextArea.

Abaixo segue o código da classe RTFParser que faz a leitura do arquivo.

public String getConteudo()
	{
		File f = new File(this.enderecoRecurso);
		FileInputStream is = null;
 
		try {
			is = new FileInputStream(f);
		}
		catch(IOException e) {
			System.out.println("ERRO: " + e.getMessage());
			return null;
		}
 
		String bodyText = null;
 
		DefaultStyledDocument styledDoc = new DefaultStyledDocument();
		try {
			new RTFEditorKit().read(is, styledDoc, 0);
			bodyText = styledDoc.getText(0, styledDoc.getLength());
		}
		catch (IOException e) {
			return "ERRO: Impossível extrair o texto do Documento RTF. Excepção: " + e;
		}
		catch (BadLocationException e) {
			return "ERRO: Impossível extrair o texto do Documento RTF. Excepção: " + e;
		}
		return bodyText;
	}

A classe onde os arquivos são utilizados tem a seguinte estrutura.

public void carregaDados(String arq){
    
        String linha = " ";
        RtfParser p = new RtfParser();
        
        if(arq.equalsIgnoreCase("hist")){
           
           p.setEnderecoRecurso("historico.rtf");
           linha = p.getConteudo();
           //   System.out.println(linha);
           jTextArea1.setText(linha);          
           jTextArea1.setCaretPosition(0);
           
           this.setTitle(" Histórico do SCAM ");

         // Segue abaixo

Alguém tem alguma idéia de como conservar a formatação do texto durante este processo ?

Obrigado

Criado 12 de agosto de 2009
Ultima resposta 13 de ago. de 2009
Respostas 1
Participantes 1