Gerando Documentos OpenOffice Dinamicamente
A versão 2.0 do OpenOffice adota um formato aberto e foi aprovado pelo consórcio OASIS em 1o. de maio de 2005. A adoção de padrões abertos é até mais importante que a adoção de softwares em código aberto. O formato pretende ser aberto à adoção de qualquer suíte de aplicativos de escritório e deverá ser adotado por outros programas, como o koffice que o implementará em versão futura.
O formato é baseado em XML e sua descrição detalhada é complexa. Entretanto, não é necessário conhecer as 706 páginas da especificação!
Basicamente o formato, assim como o formato anterior do OpenOffice 1.x, é uma arquivo compactado no formato zip. Quando descompactado ele apresenta a seguinte estrutura básica:
O arquivo que nos interessa é o content.xml.
Antes de prosseguir você deve dizer ao seu OpenOffice para não compactar o xml, retirando as identação. Em Ferramentas | Opções | LoadSave | Geral desabilite a opção "Size optimization for XML format", ou sua equivalente.
Nosso exemplo se baseará no formato OpenOffcie 2.0, mas tudo funciona com a versão anterior. Apesar disso, acredito que devemos estimular a adoção do novo formato por ser um padrão OASIS.
Tente salvar um arquivo, descompatá-lo e abrir o content.xml com o editor de sua preferência.
O formato é baseado em XML e sua descrição detalhada é complexa. Entretanto, não é necessário conhecer as 706 páginas da especificação!
Basicamente o formato, assim como o formato anterior do OpenOffice 1.x, é uma arquivo compactado no formato zip. Quando descompactado ele apresenta a seguinte estrutura básica:
META_INF/ manifest.xml Configurations2/ Pictures/ Thumbnails/ mimetype meta.xml settings.xml style.xml content.xml
O arquivo que nos interessa é o content.xml.
Antes de prosseguir você deve dizer ao seu OpenOffice para não compactar o xml, retirando as identação. Em Ferramentas | Opções | LoadSave | Geral desabilite a opção "Size optimization for XML format", ou sua equivalente.
Nosso exemplo se baseará no formato OpenOffcie 2.0, mas tudo funciona com a versão anterior. Apesar disso, acredito que devemos estimular a adoção do novo formato por ser um padrão OASIS.
Tente salvar um arquivo, descompatá-lo e abrir o content.xml com o editor de sua preferência.
Pessoal,
Como é minha primeira publicação, acabei deixando html demais. O código estava ilegível...
Dei uma limpada nos códigos, que tinham html demais, que acabou não sendo interpretado. Acho que agora a terceira parte está mais clara.
[]'s
Giovanni
Como é minha primeira publicação, acabei deixando html demais. O código estava ilegível...
Dei uma limpada nos códigos, que tinham html demais, que acabou não sendo interpretado. Acho que agora a terceira parte está mais clara.
[]'s
Giovanni
26/01/2006 8:54am
(~19 anos atrás)
Obrigado, Paulo.
A documentação do PDF é importante para aplicações mais complexas, inclusie para contribuir com o próprio phpdocwiter, que eu não conhecia.
Valem duas ressalvas. Primeiro, a abordagem do projeto é de gerar o documento codificando - similar ao uso de libs para criar pdf e outros formatos. Aqui utiliza-se o próprio OpenOffice para montar, de um jeito quase-WYSIWYG, o documento. É mais simples, mas pode-se deixar xml-lixo no documento.
Segundo, esta abordagem não é só para Writer, mas para planilhas eletrônicas Calc ou qualquer outro documento da suíte OpenOffice. Na realidade, é mais geral ainda - pode-se criar figura ou animações sgv, em pricípio. No site http://www.floridia.net/OpenDocumentFormat tenho um exemplo de planilha.
Abraços,
Giovanni
A documentação do PDF é importante para aplicações mais complexas, inclusie para contribuir com o próprio phpdocwiter, que eu não conhecia.
Valem duas ressalvas. Primeiro, a abordagem do projeto é de gerar o documento codificando - similar ao uso de libs para criar pdf e outros formatos. Aqui utiliza-se o próprio OpenOffice para montar, de um jeito quase-WYSIWYG, o documento. É mais simples, mas pode-se deixar xml-lixo no documento.
Segundo, esta abordagem não é só para Writer, mas para planilhas eletrônicas Calc ou qualquer outro documento da suíte OpenOffice. Na realidade, é mais geral ainda - pode-se criar figura ou animações sgv, em pricípio. No site http://www.floridia.net/OpenDocumentFormat tenho um exemplo de planilha.
Abraços,
Giovanni
26/01/2006 8:52am
(~19 anos atrás)
Existe um projeto chamado PHP DocWriter (http://phpdocwriter.sf.net) que utiliza classes do PHP para gerar todo o arquivo OpenOffice. Ele já faz o trabalho de geração de tabelas, propriedades da página, formatação de caracteres, imagens etc. Há muitos recursos ainda não implementados, mas, para projetos que demandem poucos recursos esta é uma excelente classe para geração de relatórios.
Gostei muito do artigo por ter abordado a coisa prática ao invés da teórica. De qualquer forma, para a utilização de recursos avançados, é fundamental a leitura do PDF sobre OpenDocument.
Parabéns!
Gostei muito do artigo por ter abordado a coisa prática ao invés da teórica. De qualquer forma, para a utilização de recursos avançados, é fundamental a leitura do PDF sobre OpenDocument.
Parabéns!
26/01/2006 6:11am
(~19 anos atrás)
Valeu!
Adriano