Есть ли способ получить текущее состояние текста, например font_size, color? - PullRequest
0 голосов
/ 12 марта 2019

Я хочу знать, в python-pptx, есть ли способ получить текущие атрибуты текста, такие как размер, шрифт, цвет шрифта и т. Д., И сохранить его и, наконец, настроить новый текст обратно на атрибуты, сохраненные до.

Потому что я хотел бы использовать API Google Translate и перевести некоторый текст с японского на английский.Но после перевода на английский некоторые слова стали больше, цвет шрифта слов изменился с белого на черный.

Я не знаю, почему это происходит, но если кто-то знает причину, пожалуйста, поделитесьэто со мной, и я хочу решить эту проблему.

мой код ниже.

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

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

translation_func - это определенная мной функция для перевода с английского на японский.


prs = Presentation('C://pyworks//TCI_Loyalty_Suite.pptx')
for slide in prs.slides:
    for shape in slide.shapes:
        if hasattr(shape, "text"):
            extracted_text = shape.text
            shape.text = translation_func(extracted_text)
            for paragraph in shape.text_frame.paragraphs:
                for run in paragraph.runs:
                    run.font.size = Pt(9)
        if shape.has_table:
            for row in shape.table.rows:
                for cell in row.cells:
                    extracted_text = cell.text
                    cell.text = translation_func(extracted_text)
                    for paragraph in cell.text_frame.paragraphs:
                        for run in paragraph.runs:
                            run.font.size = Pt(9)
...