Welcome to Sign in | Join | Help

Um exemplo de OpenXML

Uma das características mais interessantes do novo formato de arquivo do Office 2007, também disponível no Office 2003, é que os arquivos de dados são na verdade arquivos “.zip” contendo arquivos XML dentro deles. Por causa disto, seu conteúdo é facilmente visível e modificável.

Veja um exemplo simples:

1.       Abra o Word 2007 e digite “Mara tinha um carneirinho”;

2.       Faça “paste” de uma imagem qualquer, por exemplo obtida com “Alt-Print Screen”;

3.       Salve como “Alo.docx”;

4.       Vá para o Windowsx exmplorer e renomeie para “Alo.zip”;

5.       Dê um clique duplo e observe seu conteúdo na sua ferramenta de visualização de arquivos “zip”.

Você verá que existe o seguinte dentro deste zip:

·         Um arquivo chamado [Content_Types].xml que serve basicamente para identificar o tipo de arquivo (Word, no caso), através da listagem dos tipos de dados que ele contém;

·         Pasta “Word”, contendo o grosso do documento;

·         Pasta “rels”, que identifica os relacionamentos entre os diversos componentes do arquivo;

·         Pasta “DocProps”, que contém arquivos com propriedades diversas do documento, como versão, tamanho, template usado, autor, quantidade de revisões, etc.

A pasta “Word” é a com mais conteúdo. Eu destacaria o seguinte:

·         Pasta “media”, contendo a imagem que fizemos “paste” anteriormente sob o nome “image1.png”;

·         Arquivo “document.xml”, contendo o documento em si.

Uma brincadeira interessante é extrair o conteúdo do arquivo zip para uma pasta e fazer o seguinte:

1.       Edite o arquivo “document.xml” e modificar o texto “Maria tinha um carneirinho para outra coisa”, tomando cuidado de não tocar no resto. Não use caracteres acentuados por enquanto;

2.       Substitua a imagem por outra, mas mantendo o mesmo nome “picture1.png”;

3.       Comprima as pastas originais e seu conteúdo modificado para um arquivo zip chamado “Alo2.zip;

4.       Renomeie o arquivo “Alo2.zip” para “Alo2.docx”;

5.       Abra o arquivo “Alo2.docx” no Word.

Observe que as mudanças aparecem!

Evidentemente este é um processo manual que pode ser automatizado. O .NET Framerwork 3.0 contém uma API para manipulação deste tipo de arquivo .zip que facilita bastante a automatização destes procedimentos. Veja alguns exemplos de código em http://www.codeplex.com/NDOS/Wiki/View.aspx?title=OXML%20e%20Interoperabilidade&referringTitle=Home.

Published Tuesday, October 23, 2007 4:56 PM by mauro

Comments

No Comments
Anonymous comments are disabled