Página Inicial do Fórum > Java Básico

Ler, Alterar e gravar um RTF - RESOLVIDO



Criar novo tópico   Responder tópico


  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Boas a tds..

    Desta vez nao é uma duvida é uma soluçao...

    Andei semanas e semanas a bater com a cabeça na mesa mas encontrei a soluçao...

    Para quem precisa de ler RTF, alterar o seu conteudo (setar variaveis, inserir imagens...) e gravar de novo sem perder a formatação original (cabeçalhos, rodapes, imagem, tabelas, tabulaçoes, cores, tipos de letra...) a soluçao é: RTFTemplate

    http://rtftemplate.sourceforge.net/#New%20API[/url]

    Experimentem, brinquem com o RTF, e mt importante, POSTEM AS VOSSAS SOLUÇOES E INOVAÇOES...

    Hasta..




  1. rafamachado
    Posts:10


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Fala ai.
    eu to passando pela mesma situação q vc passou, nao consigo salvar um arquivo em formato rft em q permanessa a formatação do alinhamento e com imagens tb nao da certo. eu to modificando a classe Stylepad q vem nos demos do sdk usando uma classe RTFEditorKit.
    agora to pesquisando a esse RTFTemplate, vc tem alguns exemplos de códigos para me auxiliar?.

    abraços.





  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Se esta a criar um RTF por meio de codigo pode usar o projecto iText...
    O problema é que sempre que kiser alterar o aspecto do documento tem k ir ao codigo!!

    Com o RTFTemplate, voce cria um documento modelo .RTF. Dps é so carregar e alterar as variaveis que kiser!!!


    Segue o exemplo que está no final da pagina do link acima!!! Nao tem nada que saber!!

    Abraço




  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Para simplificar....



    No documento modelo vc deverá ter as variaveis desta forma:

    Este é o texto normal e esta é a minha variavel: $variavel




  1. rafamachado
    Posts:10


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Eu me baseei no código que você mostrou, mas deu o seguinte erro: "impossible to get RTF document of source file RTF". Tem alguma maneira específica de fazer o arquivo modelo e o final?

    Eis o que eu fiz:

    private void save(String directory, String file) throws UnsupportedRTFTemplate, FileNotFoundException, Exception {
    String rtfSource = directory+"DocumentoModel.rtf";

    String rtfTarget = directory+file;

    // 1. Get default RTFtemplateBuilder
    RTFTemplateBuilder builder = RTFTemplateBuilder.newRTFTemplateBuilder();

    // 2. Get RTFtemplate with default Implementation of template engine (Velocity)
    RTFTemplate rtfTemplate = builder.newRTFTemplate();

    // 3. Set the RTF model source
    rtfTemplate.setTemplate(new File(rtfSource));

    // 4. AKI ALTERA AS VARIAVEIS
    rtfTemplate.put("project", "Jakarta Velocity project");


    // 5. AKI GRAVA O DOCUMENTO FINAL
    rtfTemplate.merge(rtfTarget);

    }




  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Para dar esse erro é porque o caminho para o file nao está correcto.

    Faça um print da directoria para ver se está correcto... deve faltar uma /

    Veja se o ficheiro esta com o nome e extensao correcta




  1. rafamachado
    Posts:10


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    vlw, eu criei um arquivo chamado model.rtf e coloquei umas figuras e um texto todo formatado e criei tb um arquivo final.rtf em branco. rodei o programa e acontenceu q o conteudo de um passou para o outro.
    como mudo o conteudo de model.rtf depois q abrir e mudar o texto, o alinhamento.. pra salvar com as alteraçoes em final.rtf?

    agora eu tenho a seguinte situação q é mais inportante pra mim, um programa q é um editor de texto,
    o usuario digita em um JTextComponent e formata o texo clicando nos botoes de alinhamento direita, esquerda.. e cor, tamanho da fonte.

    como q faço pra pegar todo o conteudo desse componente e criar e salvar num arq RTF q o proprio usuario vai dizer o nome e o diretorio em um JFileChooser apos clicar em salvar? e é tb tem q ser possivel abri-lo posteriormente tanto pelo editor q faço como pelo wordpad.

    obrigado
    abraços.




  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    é o seguinte... Este projecto apenas carrega um modelo, altera o que vc quer e grava noutro documento (nao precisa de existir em branco... ele cria de raiz)

    para alterar as variaveis vc utiliza o metodo: put("nomeVariavel", "valorVariavel");
    EX: $VAR put("VAR", "OLA"); o resultado no novo doc será OLA

    nao tem como vizualizar o conteudo antes de gravar... se usar o RTFEditor Kit vc nao vai consegui ler toda a formataçao correctamente

    O k pode fazer é um conjunto de opçoes, botoes de bold, sub, cores, tipo de letra....
    Vc recolhe esses dados e com o itext (procura na net), vc cria de raiz o seu documento....




  1. rafamachado
    Posts:10


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    vlw obrigado, vc tirou minhas duvidas.
    eu testei um monte de exemplos do site alterando as variaveis, muito bom.

    realmento essa bliblioteca nao faz o q eu to precizando mais vai servir no futuro.

    agora estou procurando em outras blibliotecas, algumas demais alto nivel
    q itext, ai vai um arquivo em anexo sobre criação de relatorios em java pra quem tiver com a mesma duvida.

    abraços.




  1. Toni_GDM
    Posts:27


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Ja tinha ouvido falar do iReport e do Jasper mas nc o usei!!

    Vc já trabalhou com eles?




  1. rafamachado
    Posts:10


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    nao, estou aprendendo sobre isto agora para ver se eu resolvo o meu problema de salvar do editor.

    to vendo q eu vou ter q ler, do q o usuario digitar, linha por linha , elemento por elemento , atributos por atributos, e com alguma bliblioteca q ainda nao sei qual, criar e salvar um arquivo RTF com todas as informações, principalmente os alinhamentos e as imagens inseridas.

    abraços.




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico