Nestes dias, nos quais venho me dedicando ao desenvolvimento do projeto ODFEasy, acabei por me encantar com o formato ODF. Sendo assim, nesta semana, pretendo começar a expor o seu interior. Para começar, irei expor aqui como é o interior destes arquivos.
Ao contrário do que podemos pensar a princípio, um documento gerado pelo OpenOffice não consiste em um monobloco binário no qual se encontram todas as informações referentes à formatação do mesmo, conteúdo, imagens, etc. Na realidade, um documento gerado pelo OpenOffice consiste em um arquivo compactado no formato zip, dentro do qual se encontram uma série de arquivos responsáveis por descrever a formatação do documento, além de, é claro, armazenar seu conteúdo.
Faça a seguinte experiência: gere um arquivo qualquer no OpenOffice e, em seguida, abra este arquvo com seu software de compactação/descompactação favorito e, em seguida, o descompacte em um diretório qualquer. Você verá um conteúdo semelhante ao exposto na imagem abaixo:
Só de se observar a estrutura dos arquivos, já começamos a ter uma noção sobre como é organizado um arquivo ODF. Cada arquivo, cujo próprio nome já nos diz, possui sua função:
content.xml – Armazena o conteúdo do documento, seja ele uma planilha, apresentação, texto, imagem ou outro tipo qualquer
styles.xml – Todas as formatações compartilhadas presentes no documento. As formatações são armazenadas em um arquivo separado visando, assim, separar o conteúdo da mesma, o que facilita bastante a manutenção dos documentos. Claro, é possível também armazenar alguma formatação no arquivo content.xml, porém, neste caso, normalmente são armazenadas somente formatações específicas de um trecho específico do documento.
mimetype – O arquivo mais simples. Contém apenas uma string que identifica o tipo do documento. Diz, por exemplo, se trata-se de um texto, planilha, desenho, etc.
meta.xml – O nome já entrega :) – Armazena meta informações sobre o documento, como por exemplo qual o seu autor, qual software foi o responsável pela geração do documento, etc.
settings.xml – Informações específicas da aplicação responsável por gerar o documento, como por exemplo posicionamento de janelas, configurações internas, etc. Aqui fica nítido um dos principais objetivos do formato OpenDocument: ao armazenar informações específicas de uma aplicação em um arquivo separado, garante-se assim que um aplicativo específico não venha a dominar o formato.
Thumbnails – Trata-se de um diretório criado pelo próprio OpenOffice (não necessáriamente definido no padrão ODF). Como o próprio nome diz, armazena imagens responsáveis por disponibilizar uma pré-visualização do documento.
META-INF/manifest.xml – Dentro do diretório META-INF, há um arquivo chamado manifest.xml. Este arquvo contém uma lista de todos os documentos presentes no arquivo compactado. Ou seja, se você quiser que seu documento seja lido, este arquivo TEM de existir. :)
Configurations2 – Armazena qualquer configuração customizada definida pela aplicação responsável pela geração do documento.
Pictures – Há também um diretório que não se encontra listado na imagem acima (mea culpa), chamado Pictures, responsável por armazenar todas as imagens contidas em um documento.
Sendo assim, neste primeiro post, podemos ver como é o interior de um arquivo gerado pelo OpenOffice. A partir daqui, irei expor as principais dificuldades que venho enfrentando na implementação do projeto ODFEasy. Tal como verão, nem tudo são flores ao mergulharmos no formato OpenDocument, porém, ainda é melhor do que ficarmos presos para sempre no formato do Office que, mesmo com a abertura atual, não é tão “aberto” assim como tentam nos convencer. ;)
Gostei muito do post, até para explicar para as pessoas que já tiveram a curiosidade de clicar com o compactador de arquivos sobre os arquivos do OpenOffice.
Só uma correção: em settings.xml não seria “garante-se assim que um aplicativo não domine o formato.” ?
Opa, que bom que gostou Rafael.
Realmente, havia errado no post. Valeu pela correção!