Abrir arquivo rtf apenas para visualização e gravação novo rtf

2 respostas
T

boa noite, eu tenho uma classe que apos preenchida eu gostaria que o usuario pudesse clicar em "visualizar arquivo" e aparecesse o modelo (rtf) preenchido com os dados (mas nao permitisse alteração) , depois ele pudesse clicar em "gerar" (caso quisesse) e criasse um arquivo (doc, ou rtf msm).

Alguem tem uma ideia, uma luz, um caminho pra eu começar? achei esse codigo na net, é +- isso, mas que nao possibilite edição e que salve o arquivo que abriu.
import java.awt.*;  
import java.io.*;  
import javax.swing.*;  
import javax.swing.text.*;  
import javax.swing.text.rtf.*;  
  
class RTFView  
      extends    JFrame  
{  
   public RTFView()  
   {  
      setTitle( "RTF Text Application" );  
      setSize( 400, 240 );  
      setBackground( Color.gray );  
      getContentPane().setLayout( new BorderLayout() );  
  
      JPanel topPanel = new JPanel();  
      topPanel.setLayout( new BorderLayout() );  
      getContentPane().add( topPanel, BorderLayout.CENTER );  
  
      // Create an RTF editor window  
      RTFEditorKit rtf = new RTFEditorKit();  
      JEditorPane editor = new JEditorPane();  
      editor.setEditorKit( rtf );  
      editor.setBackground( Color.white );  
  
      // This text could be big so add a scroll pane  
      JScrollPane scroller = new JScrollPane();  
      scroller.getViewport().add( editor );  
      topPanel.add( scroller, BorderLayout.CENTER );  
      // Load an RTF file into the editor  
      try {  
         FileInputStream fi = new FileInputStream( "test.rtf" );  
         rtf.read( fi, editor.getDocument(), 0 );  
           
      }  
      catch( FileNotFoundException e )  
      {  
         System.out.println( "File not found" );  
      }  
      catch( IOException e )  
      {  
         System.out.println( "I/O error" );  
      }  
      catch( BadLocationException e )  
      {  
      }  
   }  
  
   public static void main( String args[] )  
   {  
      // Create an instance of the test application  
      RTFView mainFrame   = new RTFView();  
      mainFrame.setVisible( true );  
   }  
}

Obrigado

2 Respostas

T

Nesse mesmo codigo, eu consegui mudar pra que a pessoa nao altere o arquivo e colocar o botao, falta só salvar agora.
Aquele esquema de salvar um txt se aplica a isso também?
Para salvar um txt, eu coloco uma string, se eu fosse salvar esse arquivo que foi aberto, como eu faria?

Esse é o codigo para salvar um txt:
public void Gravar(String texto){  
	      String conteudo = " CONTEUDO QUE SERÁ SALVO DENTRO DO TXT";  
	      
	      try{  
	         String local = "arquivo.txt";
			// o true significa q o arquivo será constante  
	      
	         FileWriter x = new FileWriter(local,true);  
	       
	         new File(System.getProperty("user.dir"));
	        
	         conteudo += "\n\n\r"; // criando nova linha e recuo no arquivo           
	         x.write(conteudo); // armazena o texto no objeto x, que aponta para o arquivo           
	         x.close(); // cria o arquivo           
	         JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE);  
	      }  
	      // em caso de erro apreenta mensagem abaixo  
	      catch(Exception e){  
	         JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);  
	      }  
	   }

Poderia usar esse codigo para salvar o rtf? (caso sim) ao invés de usar "string conteudo" o que usaria?

Obrigado.

T

Será que alguem poderia pelo menos me ajudar como eu poderia substituir ‘variaveis’ que tem no rtf?

por exemplo, eu usaria o rtf como um modelo e la teria…

nome:
rg:

no java eu leria esse rtf, e depois substituiria essas variaveis por valores que a pessoa preencheu.
Alguem poderia me ajudar com isso?

Obrigado

Criado 5 de agosto de 2011
Ultima resposta 7 de ago. de 2011
Respostas 2
Participantes 1