Na primeira parte deste blog, eu apresento uma introdução ao OpenXML no processamento de texto. Na segunda parte, fornecerei código ABAP sobre como ler arquivos do Word.
Começando com o Microsoft Word 2007, ao criar um novo documento no Word e salvá-lo, um novo arquivo com a extensão "*.docx" é criado. Este arquivo representa arquivos XML comprimidos que descrevem todo o documento do Word. Inclui textos, tabelas, tamanhos de fonte, cores, comentários, configurações de margem, configurações de seção e tudo o que o usuário tenha colocado e mantido manualmente no documento. São arquivos XML interligados em uma estrutura específica e comprimidos em um arquivo.
Para explorar esta estrutura, crie seu documento de teste com algo nele e salve-o. Altere a extensão "*.docx" para "*.zip" e descomprima o arquivo. Após descompactá-lo, você verá todos os arquivos XML em uma estrutura específica. Se você precisar verificar e visualizar esses arquivos XML com frequência, recomendo um método mais conveniente. Sugiro instalar a Ferramenta OOXML, que é um complemento para o navegador Chrome. Facilmente, arrastando e soltando, você pode visualizar todo o documento do Word.
Por exemplo, criei o Test.docx com o texto "Olá Mundo". Lembre-se de que até você fornecer alguma entrada no Word, ele terá um tamanho de 0. Arrastei o arquivo do Word para o Chrome usando o complemento mencionado anteriormente para ver a estrutura XML do documento do Word. Procurei /word/document.xml para ver a tag de texto que contém o valor "Olá Mundo".
Cada arquivo XML descreve propriedades para partes do documento ou a relação entre as partes. Por exemplo:
-
Conten_types XML descreve o tipo de conteúdo utilizado em cada parte de todo o documento (pacote)
-
A parte _rels descreve a relação entre duas partes
-
A parte de propriedades do documento descreve as propriedades gerais do documento no arquivo XML da aplicação e o núcleo (aplicação, autor, versão...)
-
A parte XML personalizada é a parte que pode conter dados específicos do cliente; isso será descrito mais detalhadamente em outro blog
-
O conteúdo do documento está no arquivo /word/document.xml
-
O XML da tabela de fontes contém informações sobre os tipos de fontes utilizadas
-
O XML dos estilos descreve os estilos utilizados
A SAP fornece a classe CL_DOCX_DOCUMENT
que pode nos ajudar a ler e modificar documentos do Word e revisar sua estrutura. Aqui está um código simples que faz o trabalho...
... (código ABAP omitido para reduzir a extensão do texto) ...
Os métodos get*part da classe podem fornecer diferentes partes do documento. Neste caso, estávamos interessados na parte principal.
O método get_data( ) irá retornar o arquivo XML da parte e utilizando o método feed_data( ) você armazenará o XML na parte usada do documento. Esses métodos fazem parte de cada classe que representa diferentes partes de documentos. Por exemplo, em nosso caso é CL_DOCX_MAINDOCUMENTPART. Olhe no depurador
O método get_package_data( ) da classe CL_DOCX_DOCUMENT salvará todas as partes atuais e as empacotará em um arquivo ZIP.
Você pode verificar isso no depurador observando as variáveis lv_xml e lv_docx usando a visualização XML do navegador. Para a variável lv_xml, você verá o arquivo XML da parte principal.
Para lv_docx, você receberá um pop-up perguntando se deseja salvar o arquivo ZIP, que é o resultado do método get_package_data( ).
Em meu
próximo blog
vou descrever a parte personalizada do documento do Word e como um desenvolvedor ABAP pode utilizá-la.