Pessoal, quem puder me ajudar, eu agradeço,
Trabalho em um cartório, e o sistema daqui é feito em Clipper.Na medida em que se tem que digitar uma escritura por exemplo, tem que sair do programa, entrar no word e escrever a mesma. Com Java é possível criar o programa onde qd for preciso digitar uma escritura, ele importe do banco essa escritura e criar uma rotina pra aparecer o documento já com os dados inseridos na tela pelo funcionário?
Obrigado,
Edson Aureliano
Documento do Word
3 Respostas
Aham, até dá, mas acho mais fácil no seu caso em particular usar alguma linguagem que entenda Automation - como é o caso do VBA (Visual Basic for Applications), que vem junto com o próprio Word. (Faça a instalação completa (full) do Office, que você vai ver que vem esse pacote de VBA também.)
No seu caso até daria para o Clipper gerar um arquivo texto que fosse usável pelo recurso de “Mail Merge” do MS Office.
(Java não é a salvação imediata para todos os problemas; alguns deles dão mais trabalho que outros. Não há caminhos fáceis para o Reino dos Céus…)
- P.S. Se você tiver o MS Office 2003, existe agora uma maneira documentada de especificar um arquivo MS-Word diretamente em XML. Nesse caso fica “fácil” (fácil em termos
- dá um trabalho desgraçado) de gerar o tal arquivo Word do jeito que você quer, em Java. Só que não tem nada em português como documentação desse recurso.
Opa thingol,
Na sua última dica para gerar arquivos Word em Java, tendo o MS Office 2003 e usando o XML, não entendi direito, poderia dar alguma explicação adicional?
Obrigado pela atenção…
Edson Aureliano
É particularmente estúpido, mas não é um bicho de 7 cabeças.
Em linhas gerais:
- Pegue o seu documento
- Nos lugares onde você quer substituir, ponha algum marcador fácil de achar (tipo “@@@nome@@@” para completar com o nome)
- Salve como XML. Como você sabe, XML é um formato texto.
- Agora você tem de ler o arquivo XML. Existe um monte de APIs para XML em Java, veja a API de sua preferência (StAX, SAX etc.)
- Cuidado, que o arquivo foi salvo no formato UTF-8, e na hora de ler esse arquivo e gravar, é necessário especificar o encoding UTF-8 (veja as APIs de XML; UTF-8 é padrão para o XML.)
Você pode tentar procurar onde há um elemento XML como este:
<w:t>@@@nome@@@</w:t>
e trocar por este (se o nome for “José Arimatéia”):
<w:t>José Arimatéia</w:t>
Aí você grava o XML em outro arquivo, para que o Word possa lê-lo já corretamente modificado.
Eu em particular sou mais a favor da solução 100% Word. Dá menos dor de cabeça para um problema como o seu.