Скопируйте объект произвольной формы в python-pptx - PullRequest
0 голосов
/ 09 октября 2018

У меня есть объект произвольной формы на слайде шаблона, который я хотел бы продублировать и сделать из него несколько объектов.

Я не смог найти в документации способ создания фигуры из предварительносуществующая форма.Я смотрю в неправильном месте или эта функция не существует?

1 Ответ

0 голосов
/ 10 октября 2018

API python-pptx не поддерживает эту операцию, но вы можете использовать некоторые внутренние компоненты для достижения этого результата

from copy import deepcopy

# ---get the existing freeform shape however you do---
freeform = slide.shapes[n]
# ---get the underlying XML element for that shape---
sp = freeform._sp
for idx in range(3):
    # ---duplicate original freeform---
    new_sp = deepcopy(sp)
    # ---create a unique id for it---
    new_sp.nvSpPr.cNvPr.id = 1000 + idx
    # ---insert it after original---
    sp.addnext(new_sp)

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

...