PPTX - выяснение, является ли текст маркированным из OpenXML - PullRequest
5 голосов
/ 23 марта 2012

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

-Спасибо

1 Ответ

3 голосов
/ 23 марта 2012

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

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

Обновление:

Привет +1 Для публикации этого вопроса многому научился.

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

"Хорошо, я думаю, я понял это. В основном, если нет форматирования указан в макете или слайде, он идет к мастеру, и если его форма '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.

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

Привет.

...