¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Explorando la estructura XML de documentos de Word: Guía SEO para desarrolladores ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 128 Vistas
0
Cargando...
En la primera parte de este blog doy una introducción a OpenXML en el procesamiento de texto. En la segunda parte proporcionaré código ABAP sobre cómo leer archivos de Word.

Comenzando con Microsoft Word 2007, al crear un nuevo documento en Word y guardarlo, se crea un nuevo archivo con la extensión "*.docx". Este archivo representa archivos xml comprimidos que describen todo el documento de Word. Incluye textos, tablas, tamaños de fuente, colores, comentarios, configuraciones de márgenes, configuraciones de secciones y todo lo que el usuario haya colocado y mantenido manualmente en el documento. Se trata de archivos xml vinculados entre sí en una estructura específica y comprimidos en un archivo.

Para explorar esta estructura, crea tu documento de prueba con algo en él y guárdalo. Cambia la extensión "*.docx" a "*.zip" y descomprime el archivo. Después de descomprimirlo, verás todos los archivos xml en una estructura especificada. Si necesitas verificar y ver estos archivos xml con frecuencia, te recomiendo un método más conveniente. Te sugiero instalar la Herramienta OOXML, que es un complemento para el navegador Chrome. De manera fácil, mediante arrastrar y soltar, puedes ver todo el documento de Word.

Por ejemplo, creé Test.docx con el texto "Hola Mundo". Ten en cuenta que hasta que proporciones alguna entrada en Word, tiene un tamaño de 0. Arrastré el archivo de Word a Chrome usando el complemento mencionado anteriormente para ver la estructura xml del documento de Word. Busqué /word/document.xml para ver la etiqueta de texto que contiene el valor "Hola Mundo".



Cada archivo xml describe propiedades para partes del documento o la relación entre las partes. Por ejemplo:

  • Conten_types xml describe el tipo de contenido utilizado en cada parte de todo el documento (paquete)

  • La parte _rels describe la relación entre dos partes

  • La parte de propiedades del documento describe las propiedades generales del documento en el archivo xml de la aplicación y el núcleo (aplicación, autor, versión...)

  • La parte xml personalizada es la parte que puede contener datos específicos del cliente; esto se describirá más en otro blog

  • El contenido del documento se encuentra en el archivo /word/document.xml

  • El xml de la tabla de fuentes contiene información sobre los tipos de fuentes utilizadas

  • El xml de los estilos describe los estilos utilizados


SAP proporciona la clase CL_DOCX_DOCUMENT que puede ayudarnos a leer y modificar documentos de Word y revisar su estructura. Aquí tienes un código simple que hace el trabajo...
... (código ABAP omitido para reducir la extensión del texto) ...

Los métodos get*part de la clase pueden proporcionar diferentes partes del documento. En este caso, estábamos interesados en la parte principal.

El método get_data( ) te devolverá el archivo xml de la parte y utilizando el método feed_data( ) almacenarás el xml en la parte utilizada del documento. Estos métodos forman parte de cada clase que representa diferentes partes de documentos. Por ejemplo, en nuestro caso es CL_DOCX_MAINDOCUMENTPART. Mira en el depurador

El método get_package_data( ) de la clase CL_DOCX_DOCUMENT guardará todas las partes actuales y las empaquetará en un archivo zip.

Puedes verificar esto en el depurador al observar las variables lv_xml y lv_docx utilizando la vista del navegador XML. Para la variable lv_xml, verás el archivo xml de la parte principal.



Para lv_docx, se te pedirá un mensaje emergente si deseas guardar el archivo zip, que es el resultado del método get_package_data( ).



En mi próximo blog describiré la parte personalizada del documento de Word y cómo puede utilizarla un desarrollador ABAP.
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Andre,

Quizás pueda imaginar si haces este tipo de cosas de una manera de servicio web que pueda ser consumido por tu aplicación, esto podría ser posible. Pero tómalo solo como una opción posible para explorar. No tengo mucha experiencia con esto. En realidad, Java y C ofrecen muchas más posibilidades de una manera más conveniente de trabajar con altChunk. Para poder procesar esto en ABAP, primero tuve que explorar códigos de muestra en C y Java; puedes encontrar realmente muchos de ellos en la web.

Saludos,

Pavol

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...
Hola colegas,

Hasta donde entiendo, ¿esto solo es posible si los servicios de frontend de la interfaz gráfica de usuario (GUI) están disponibles, verdad?

¿Hay también soluciones si trabajamos con UI5, OData y HANA, es decir, sin ningún servicio de SAP Gui?

Saludos,

André

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...
¡Muchas gracias! Sería realmente genial tener un blog sobre transformaciones de escritura relacionadas con este tema.
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...
Excelente blog. Hay una buena herramienta ABAP para listar el paquete disponible. Verifica el programa ROPENXML_LISTER. Además, he mejorado CL_DOCX_ALTERNATIVEFORMATPART para permitir archivos DOCX y MHT como altChunks. He escrito algunas transformaciones para actualizar datos de gráficos y reemplazar controles de contenido. Espero escribir pronto un blog al respecto.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?