{"id":90,"date":"2008-10-05T22:25:17","date_gmt":"2008-10-06T01:25:17","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=90"},"modified":"2008-10-08T11:18:22","modified_gmt":"2008-10-08T14:18:22","slug":"como-e-um-documento-do-openoffice-odf-por-dentro","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=90","title":{"rendered":"Como \u00e9 um documento do OpenOffice (ODF) por dentro?"},"content":{"rendered":"<p>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\u00e7ar a expor o seu interior. Para come\u00e7ar, irei expor aqui como \u00e9 o interior destes arquivos.<\/p>\n<p>Ao contr\u00e1rio do que podemos pensar a princ\u00edpio, um documento gerado pelo OpenOffice n\u00e3o consiste em um monobloco bin\u00e1rio no qual se encontram todas as informa\u00e7\u00f5es referentes \u00e0 formata\u00e7\u00e3o do mesmo, conte\u00fado, imagens, etc. Na realidade, um documento gerado pelo OpenOffice consiste em um arquivo compactado no formato zip, dentro do qual se encontram uma s\u00e9rie de arquivos respons\u00e1veis por descrever a formata\u00e7\u00e3o do documento, al\u00e9m de, \u00e9 claro, armazenar seu conte\u00fado.<\/p>\n<p>Fa\u00e7a a seguinte experi\u00eancia: gere um arquivo qualquer no OpenOffice e, em seguida, abra este arquvo com seu software de compacta\u00e7\u00e3o\/descompacta\u00e7\u00e3o favorito e, em seguida, o descompacte em um diret\u00f3rio qualquer. Voc\u00ea ver\u00e1 um conte\u00fado semelhante ao exposto na imagem abaixo:<\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-91\" title=\"conteudoods\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\" alt=\"\" width=\"488\" height=\"323\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg 488w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods-300x198.jpg 300w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/a><\/p>\n<p>S\u00f3 de se observar a estrutura dos arquivos, j\u00e1 come\u00e7amos a ter uma no\u00e7\u00e3o sobre como \u00e9 organizado um arquivo ODF. Cada arquivo, cujo pr\u00f3prio nome j\u00e1 nos diz, possui sua fun\u00e7\u00e3o:<\/p>\n<p><strong>content.xml<\/strong>\u00a0&#8211; Armazena o conte\u00fado do documento, seja ele uma planilha, apresenta\u00e7\u00e3o, texto, imagem ou outro tipo qualquer<br \/>\n<strong>styles.xml &#8211; <\/strong>Todas as formata\u00e7\u00f5es compartilhadas presentes no documento. As formata\u00e7\u00f5es s\u00e3o armazenadas em um arquivo separado visando, assim, separar o conte\u00fado da mesma, o que facilita bastante a manuten\u00e7\u00e3o dos documentos. Claro, \u00e9 poss\u00edvel tamb\u00e9m armazenar alguma formata\u00e7\u00e3o no arquivo <em>content.xml<\/em>, por\u00e9m, neste caso, normalmente s\u00e3o armazenadas somente formata\u00e7\u00f5es espec\u00edficas de um trecho espec\u00edfico do documento.<br \/>\n<strong>mimetype<\/strong>\u00a0&#8211; O arquivo mais simples. Cont\u00e9m apenas uma string que identifica o tipo do documento. Diz, por exemplo, se trata-se de um texto, planilha, desenho, etc.<br \/>\n<strong>meta.xml<\/strong>\u00a0&#8211; O nome j\u00e1 entrega :) &#8211; Armazena meta informa\u00e7\u00f5es sobre o documento, como por exemplo qual o seu autor, qual software foi o respons\u00e1vel pela gera\u00e7\u00e3o do documento, etc.<br \/>\n<strong>settings.xml &#8211; <\/strong>Informa\u00e7\u00f5es espec\u00edficas da aplica\u00e7\u00e3o respons\u00e1vel por gerar o documento, como por exemplo posicionamento de janelas, configura\u00e7\u00f5es internas, etc. Aqui fica n\u00edtido um dos principais objetivos do formato OpenDocument: ao armazenar informa\u00e7\u00f5es espec\u00edficas de uma aplica\u00e7\u00e3o em um arquivo separado, garante-se assim que um aplicativo espec\u00edfico n\u00e3o venha a dominar o formato.\u00a0<br \/>\n<strong>Thumbnails<\/strong>\u00a0&#8211; Trata-se de um diret\u00f3rio criado pelo pr\u00f3prio OpenOffice (n\u00e3o necess\u00e1riamente definido no padr\u00e3o ODF). Como o pr\u00f3prio nome diz, armazena imagens respons\u00e1veis por disponibilizar uma pr\u00e9-visualiza\u00e7\u00e3o do documento.<br \/>\n<strong>META-INF\/manifest.xml<\/strong>\u00a0&#8211; Dentro do diret\u00f3rio META-INF, h\u00e1 um arquivo chamado manifest.xml. Este arquvo cont\u00e9m uma lista de todos os documentos presentes no arquivo compactado. Ou seja, se voc\u00ea quiser que seu documento seja lido, este arquivo TEM de existir. :)<br \/>\n<strong>Configurations2<\/strong>\u00a0&#8211; Armazena qualquer configura\u00e7\u00e3o customizada definida pela aplica\u00e7\u00e3o respons\u00e1vel pela gera\u00e7\u00e3o do documento.<br \/>\n<strong>Pictures &#8211;\u00a0<\/strong>\u00a0H\u00e1 tamb\u00e9m um diret\u00f3rio que n\u00e3o se encontra listado na imagem acima (mea culpa), chamado Pictures, respons\u00e1vel por armazenar todas as imagens contidas em um documento.<\/p>\n<p>Sendo assim, neste primeiro post, podemos ver como \u00e9 o interior de um arquivo gerado pelo OpenOffice. A partir daqui, irei expor as principais dificuldades que venho enfrentando na implementa\u00e7\u00e3o do projeto ODFEasy. Tal como ver\u00e3o, nem tudo s\u00e3o flores ao mergulharmos no formato OpenDocument, por\u00e9m, ainda \u00e9 melhor do que ficarmos presos para sempre no formato do Office que, mesmo com a abertura atual, n\u00e3o \u00e9 t\u00e3o &#8220;aberto&#8221; assim como tentam nos convencer. ;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e7ar a expor o seu interior. Para come\u00e7ar, irei expor aqui como \u00e9 o interior destes arquivos. Ao contr\u00e1rio do que podemos pensar a princ\u00edpio, um documento gerado pelo OpenOffice [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12,13,15],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-odf","category-odf-easy","category-openoffice"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=90\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"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\u00e7ar a expor o seu interior. Para come\u00e7ar, irei expor aqui como \u00e9 o interior destes arquivos. Ao contr\u00e1rio do que podemos pensar a princ\u00edpio, um documento gerado pelo OpenOffice [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=90\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2008-10-06T01:25:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2008-10-08T14:18:22+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=90\",\"name\":\"Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\",\"datePublished\":\"2008-10-06T01:25:17+00:00\",\"dateModified\":\"2008-10-08T14:18:22+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=90\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=90#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como \u00e9 um documento do OpenOffice (ODF) por dentro?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?p=90","og_locale":"pt_BR","og_type":"article","og_title":"Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico","og_description":"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\u00e7ar a expor o seu interior. Para come\u00e7ar, irei expor aqui como \u00e9 o interior destes arquivos. Ao contr\u00e1rio do que podemos pensar a princ\u00edpio, um documento gerado pelo OpenOffice [&hellip;]","og_url":"https:\/\/devkico.itexto.com.br\/?p=90","og_site_name":"\/dev\/Kico","article_published_time":"2008-10-06T01:25:17+00:00","article_modified_time":"2008-10-08T14:18:22+00:00","og_image":[{"url":"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2008\/10\/conteudoods.jpg"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=90","url":"https:\/\/devkico.itexto.com.br\/?p=90","name":"Como \u00e9 um documento do OpenOffice (ODF) por dentro? - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg","datePublished":"2008-10-06T01:25:17+00:00","dateModified":"2008-10-08T14:18:22+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=90#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=90"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=90#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2008\/10\/conteudoods.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=90#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Como \u00e9 um documento do OpenOffice (ODF) por dentro?"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/90"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=90"}],"version-history":[{"count":2,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":104,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/90\/revisions\/104"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}