Inquiridor
Templates Word

Pergunta
-
Olá pessoal.
Tenho mais de 19000 arquivos word, onde muito mais de sua metade foram criados em um caminho onde o template apontava para um arquivo .dot não mais existente em minha rede, e hoje, ao tentar abrir um destes arquivos há uma demora de pelo menos 3 minutos para a abertura deste arquivo, onde no Office 2003, mostra-se a mensagem de que está havendo uma verificação de virua e no Office 2007 mostra exatamente que o arquivo está tentando abrir um template de um caminho inexistente.
Fiz uma aplicação em C# onde eu altero este template para normal.dot e não mais \\caminho\template.dot, ok? Ocorre que, para que minha aplicação funcione eu preciso abrir o arquivo para efetuar a alteração do template, o que está me gerando muita dor de cabeça, pois para abrir o documento levam exatamente os mínimos 3 minutos, e imaginem para mais de 10000 arquivos!!!
Gostaria de saber como eu poderia aplicar em lote de forma rápida a alteração de todos os templates existentes para Normal.dot? Seja em aplicação C#, o qual desenvolvo ou via Office mesmo.
No caso de aplicação C#, gostaria de saber se há como escrever em um arquivo Word para alteração do Template, sem que seja necessário abrir o arquivo, e se isto for possível, já me pouparoa os danados mínimos de 3 minutos de abertuira de arquivo para efetuar a alteração.
Alguém poderia me ajudar.
Atenciosamente
Wilson Dutra
Todas as Respostas
-
Olá Wilson,
Você já experimentou abrir um desses arquivos do Word em um editor de texto simples (ex: Notepad) para ver se consegue enxergar esse caminho do arquivo .dot?
É que se essa informação estiver visível, você poderia fazer um pequeno programa em C# para abrir o arquivo de forma binária, localizar o offset onde está esse caminho, e substituir pelo caminho local (ou outro caminho que preferir).
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://www.caioproiete.com -
Olá Caio, como sempre me ajudando.
Cara, abri o arquivo da forma que me indicou, porém o caminho do modelo.dot não existe desta forma.
A maneira que encontrei foi utilizando um programa meu fazendo o seguinte:
1- Crio uma aplicação word
2- Abro o documento word
3- Ativo o documento
4- Altero o template
5- Sobrescrevio o Autor do documento nas propriedades (para garantir o salvamento)
6- Salvo o documento
7- Fecho o documento
8- fecho a aplicação Word
Bom, todos oestes passos para cada arquivo word. Até que funciona bem, porém um problema: Quando vou abrir um documento deste, que possui o template apontado para um endereço errado, não entendi por que, mas, o word, com a demora da abertura do arquivo, acaba criando não sei como mais de uma aplicação word, pois na fila de processos ficam inúmeros words abertos e acaba estourando a memória, e preciso fazer o programa rodar de pequenas pastas em pequenas pastas. É funcional, mas mauito trabalhoso. Se você normalmente tentar abrir um arquivo deste, ele leva em torno de 2 a 3 minutos para abrir, e seria interessantíssimo abrir de forma binária, mas não consegue-se ver o caminho do tremplate para ser alterado.
Tens alguma outra dica meu amigo?
Atenciosamente
Wilson Dutra
Wilson Dutra -
Olá Wilson,
Tem certeza que não consegue ver o caminho do arquivo .DOT? Já tentou abrir em um editor hexadecimal para procurar? Pode ser que esteja em Unicode, e aí visualizaria algo como "\.\.c.a.m.i.n.h.o.\.\.N.O.R.M.A.L...d.o.t."
Tem algum arquivo que você possa disponibilizar em algum lugar (Ex: RapidShare) só para eu dar uma olhada? Teria que ser um arquivo que você sabe exatamente qual o caminho que está definido, para eu saber o que procurar...
---
De qualquer forma, uma solução alternativa seria fazer uma pequena aplicação em Java, utilizando o framework POI da Apache, que permite ler e gravar arquivos Microsoft no formato binário, diretamente... Sem precisar interagir com a aplicação via COM. Com certeza seria bem mais rápido, e como o framework é open-source, você pode fazer uma aplicação simples aproveitando a biblioteca de leitura de arquivos Word.
Apache POI - the Java API for Microsoft Documents
http://poi.apache.org/
Existe um port dessa biblioteca para .NET, e chama-se NPOI, só que ainda estão bastante atrasados e neste momento só é possível trabalhar com arquivos do Excel (XLS)... Ainda não implementaram a leitura / escrita de arquivos Word, por isso não sei se será útil... Mas é capaz de valer a pena dar uma olhada... De repente, o código que eles tem no NPOI já permite ler/escrever o cabeçalho do arquivo e talvez seja o que precisa.
NPOI - The .NET port of Apache POI
http://npoi.codeplex.com/
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://www.caioproiete.com- Sugerido como Resposta C. Augusto Proiete [MVP]Moderator segunda-feira, 24 de maio de 2010 11:08
-
Olá Wilson,
Uma outra possivel alternativa (não testei):
The Dsofile.dll files lets you edit Office document properties when you do not have Office installed
http://support.microsoft.com/default.aspx/kb/224351
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://www.caioproiete.com -
-
-