python-pptx: читать цвет шрифта - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу прочитать цвет шрифта из данного текстового поля.Я могу извлечь имя шрифта и полужирный, но не цвет (или название шрифта).

Вот мой код:

text_frame = shape.text_frame
paragraph = text_frame.paragraphs[0]

for run in paragraph.runs:
    font = run.font
    try:
        font_size = font.size.pt
        print(font_size)
        font_bold = font.bold
        print(font_bold)
        font_name = font.name
        print(font_name)
        color = font.color.rgb
        print(color)
    except:
        pass

возвращает:

36.0
True
None

спасибо

1 Ответ

0 голосов
/ 14 февраля 2019

В PowerPoint (примерно как CSS в этом аспекте) атрибуты шрифта могут применяться на различных уровнях в так называемой (по крайней мере, в некоторых) иерархии стиля .Нижний уровень, который переопределяет любые уровни выше, - это применение стиля непосредственно к определенному прогону.Только непосредственно примененный атрибут , подобный этому, может быть получен с использованием таких свойств, как .bold и .color.

. Там может быть такими атрибутами, как .effective_bold и.effective_color, который перемещается по иерархии стилей для расчета того, какое значение будет применено во время рендеринга, но пока нет (*).

Таким образом, значение None для font.color.rgb указывает, что прогон наследует его настройки цвета из его иерархии стилей (например, по умолчанию абзаца, формы по умолчанию, темы или представления по умолчанию и т. Д.), Но, к сожалению, не пересекает иерархию стилей, чтобы определить эффективную настройку цвета.

...