c# xml text powerpoint

c# - Herencia de estilo PPTX



xml text (1)

¿Alguien sabe cómo se heredan los estilos de caracteres en un archivo pptx? Sé que al menos es así:

  1. Local Run props ( a:rPr )
  2. a:pPr/a:defRPr locales ( a:pPr/a:defRPr )
  3. a:lstStyle/a:lvlXpPr/a:defRPr párrafo de la forma ( a:lstStyle/a:lvlXpPr/a:defRPr )
  4. Apocalipsis para párrafos de Layout?
  5. Apoyos de párrafo de diapositiva maestra ( p:txStyles/(p:titleStyle|p:bodyStyle|p:otherStyle)/a:lvlXpPr/a:defRPr )
  6. Slide Theme ( a:objectDefaults/(a:spDef|a:lnDef|a:txDef)/a:lstStyle/a:lvlXpPr/a:defRPr )
  7. Presentación predeterminada ( p:defaultTextStyle/a:lvlXpPr/a:defRPr )

Pero, cuando lo comparo con los resultados de otras aplicaciones, no coincide. Debido a razones técnicas, no puedo usar una biblioteca que ya hace esto por mí, estoy leyendo el xml yo mismo. La fuente de POI apache tiene algunas marcas TODO: en las áreas relevantes, y tengo problemas para entender el código de LibreOffice.

Editar: para seguir explicando, quiero encontrar las propiedades de ejecución absoluta, no las propiedades de ejecución relativa. Podría pensarlo así: tiene varias transparencias para un retroproyector. Quiero ver la imagen creada desde todas las páginas, no solo la local.


Supongo que al escribir herencia en este contexto, quiere decir que un estilo se basa en otro. Parece que puede usar la propiedad BasedOn para verificar esto programáticamente.

Encontré un artículo sobre esto con un código de muestra que detecta automáticamente la jerarquía de estilos en un documento seleccionado. Puede encontrarlo aquí: https://blogs.msdn.microsoft.com/ericwhite/2010/03/29/testing-for-base-styles-in-open-xml-wordprocessingml-documents/ . El código escrito para Word (DOCX) archivos, pero supongo que debería ser muy similar para PowerPoint (PPTX). Si tiene algún problema al usar el código para el archivo PPTX, hágamelo saber e intentaré ayudarlo.

De acuerdo con esta información https://msdn.microsoft.com/en-us/library/office/gg188064.aspx#sectionSection5 , los "estilos de caracteres" solo se pueden referenciar mediante el tipo de elementos de run y no se puede hacer referencia a ellos por párrafos.

También puede encontrar un artículo sobre la herencia de estilos aquí: https://blogs.msdn.microsoft.com/ericwhite/2009/10/28/open-xml-wordprocessingml-style-inheritance-post-4/

Si bien no proporciona una respuesta a su pregunta directamente, contiene cierta información adicional asociada con la herencia de estilos, por lo que puede parecerle útil.