PPTX - выяснение, является ли текст маркированным из OpenXML

Мне не удалось найти индикатор, который мог бы сказать мне, маркирован ли текст в теге txBody или нет, не могли бы вы мне определить, какой индикатор следует использовать, чтобы понять, является ли текст маркированным или простым?

-Спасибо

1 ответ

Решение

Внутри тега txBody вы можете найти теги "a:buFont" и "buChar", которые помогут вам определить, что текст маркирован. например.

<a:buFont typeface="Arial" pitchFamily="34" charset="0"/>
<a:buChar char="•"/>

Обновить:

Привет, +1 За размещение этого вопроса, многому научился.

После поиска в Google я нашел эту ссылку, которая решает аналогичную проблему, Resoponse от Адамма очищает это,

"Хорошо, так что я думаю, что я понял это. В основном, если форматирование не указано в макете или слайде, оно переходит к мастеру, а если это форма 'title' или 'ctrTitle', оно использует форматирование и по умолчанию lvl1. То же самое относится и к тексту, который не имеет формы заголовка, для него по умолчанию используется форматирование в, а если lvl не указан, по умолчанию используется lvl1. И еще один совет, хотя и не относящийся к моему первоначальному вопросу, еще один txStyle в slideMaster, который используется для текста в форме, которой нет в txBody."

Теперь слайд в вашем pptx использует "Офисную тему", а интересующий вас текст имеет форму формата в дизайне слайда. Маркированный текст наследуется от slideMaster1.xml в SlideMasters.

Как упомянуто в приведенной выше цитате, текст в буфете унаследован от "a: lvl1pPr" из "p: bodyStyle" в slideMaster1.xml, также вы можете видеть, что пуля 2-го уровня по умолчанию имеет значение "-" для офисного мастера слайдов темы там.

Я попытался подтвердить это, изменив char = "•" на ">", чтобы увидеть, что маркировка изменилась на ">" в строке ниже

<p:bodyStyle>
      <a:lvl1pPr marL="342900" indent="-342900" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
        <a:spcBef>
          <a:spcPct val="20000"/>
        </a:spcBef>
        <a:buFont typeface="Arial" pitchFamily="34" charset="0"/>
        <a:buChar char="•"/>
        ....

Теперь, если вы хотите изменить его программно, вы можете сделать это из мастер-слайдов 1. Но единственная проблема здесь заключается в том, что, когда мы меняем стиль маркированного списка здесь (как выше), он меняется для всех слайдов, а также для будущих слайдов, которые вы будете создавать с той же темой в вашем ppt.

Надеюсь это поможет.

С уважением.

Другие вопросы по тегам