Docx4j: получить имя стиля абзаца

Я хочу проанализировать документ docx. Я использую этот код для получения абзацев и отображения текста:

   final String XPATH_TO_SELECT_TEXT_NODES = "//w:p";
    final List<Object> jaxbNodes = documentPart.getJAXBNodesViaXPath(XPATH_TO_SELECT_TEXT_NODES, true);

    for (Object jaxbNode : jaxbNodes){
            final String paragraphString = jaxbNode.toString();
            System.out.println("[Start]: " + paragraphString);
    }       

Но мне также нужно знать имя стиля текущего абзаца. Как я могу это сделать?

Спасибо за вашу помощь. 1ceman


person Iceman    schedule 27.02.2014    source источник


Ответы (1)


PPr pPr = ((P) XmlUtils.unwrap(jaxbNode)).getPPr();

if (pPr != null) {
    PPrBase.PStyle pStyle = pPr.getPStyle();

    if (pStyle != null) {
        String style = pStyle.getVal();
    }
}

Если явного стиля нет, используется стиль абзаца по умолчанию (как указано в разделе стилей).

person JasonPlutext    schedule 27.02.2014
comment
Спасибо за ваше решение. это прекрасно работает. Есть ли разница между приведенным выше кодом и «Ppr pPr = ((P)jaxbNode).getPPr()»? - person Iceman; 02.03.2014
comment
Возможно нет. P никогда не следует оборачивать в JAXBElement; createP ObjectFactory просто создает голый объект P. - person JasonPlutext; 03.03.2014