Documento do Word

3 respostas
E

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

3 Respostas

T

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 :wink: - 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.
E

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

T

É 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.

Criado 22 de abril de 2005
Ultima resposta 22 de abr. de 2005
Respostas 3
Participantes 2