Прочитать цвет контура прямоугольника / texbox - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь прочитать цвет контура прямоугольника и получаю следующую ошибку

AttributeError: нет свойства .rgb для типа цвета '_NoneColor'

Я использую тот же кодс другим слайдом и результаты получаются, как и ожидалось. Я уверен, что с формой что-то не так, однако я не могу точно определить проблему ... Кто-то может помочь?

для фигуры в slide_3.shapes:

if shape.name[:9] == 'Rectangle':

    shape_color = shape.fill.fore_color.rgb
    line_color = shape.line.color.rgb

1 Ответ

1 голос
/ 06 ноября 2019

Существует множество возможных комбинаций для типов цветов и типов заливки. Вам нужно начать с самого начала и пройтись по нему, опрашивая типы по ходу.

from pptx.enum.dml import MSO_COLOR_TYPE, MSO_FILL

def read_outline_color(shape):
    line_fill = shape.line.fill
    print("fill-type == %s" % line_fill.type)
    # ---we only handle solid, which is most common
    # ---the other common value is "background" which means no-fill
    if line_fill.type != MSO_FILL.SOLID:
        return

    # ---color can be specified as specific RGB color or a theme color
    # ---like ACCENT_1
    line_color = line_fill.fore_color
    print("color-type == %s" % line_color.type)
    if line_color.type == MSO_COLOR_TYPE.SCHEME:
        print("color == %s" % line_color.theme_color
    elif line_color.type == MSO_COLOR_TYPE.RGB:
        print("color == %s" % line_color.rgb
    else:
        print("No line color")
...