OpenXML Filter: support styles hierarchy in presentation table cells

Issue #1009 resolved
Denis Konovalyenko created an issue

Styles of p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:txBody/a:lstStyle kind should be considered.

The attached document illustrates the behaviour - the p:sldMaster/p:txStyles/p:otherStyle is applied to table cells text (cap=”all”):

Comments (4)

  1. Denis Konovalyenko reporter

    According to the specifiction, styles for a table are specified in one of two ways:

    • inline - from a:tblPr/a:tblStyle (slide, slide layout or slide master)
    • referenced from a:tblPr/a:tblStyleId - a:tblStyleLst/a:tblStyle (in tableStyles part)

    a:tblStyle/
    <band1H> (§5.1.4.2.1); <band1V> (§5.1.4.2.2); <band2H> (§5.1.4.2.3); <band2V> (§5.1.4.2.4); <firstCol> (§5.1.4.2.11); <firstRow> (§5.1.4.2.12); <lastCol> (§5.1.4.2.16); <lastRow> (§5.1.4.2.17); <neCell> (§5.1.4.2.20); <nwCell> (§5.1.4.2.21); <seCell> (§5.1.4.2.23); <swCell> (§5.1.4.2.24); <wholeTbl> (§5.1.4.2.34)
    /a:tcTxStyle[b, i]
    The table elements to consider the styles with are mentioned in a:tbl/a:tblPr. If none is pointed out, the a:wholeTbl has to be used.
    E.g.: <a:tblPr firstRow="1" bandRow="1">

    The meaninigful "b" and "i" styles of table cell text has to be further merged with p:otherStyle in slideMaster part, which in its turn has to be merged with
    p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:txBody/a:lstStyle.

    This behaviour is supported by LibreOffice, however, MS PowerPoint has a little bit deviated implementation - the table cell text style "b" and "i" attributes are not allowed (and the document is considered to be corrupted).
    I.e.: <a:tcTxStyle b="true" i="true">. For more information, please refer to the attached 1009-1.pptx document.

    As long as there are other places of the OpenXML filter where the PowerPoint implementation is followed instead of the specification, the scope of this issue is going to be in providing support for the p:otherStyle and p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl/a:tr/a:tc/a:txBody/a:lstStyle.

  2. Log in to comment