Номер слайда с автоматическим обновлением в PowerPoint - это поле .XML выглядит следующим образом:
<a:fld id="{1F4E2DE4-8ADA-4D4E-9951-90A1D26586E7}" type="slidenum">
<a:rPr lang="en-US" smtClean="0"/>
<a:t>2</a:t>
</a:fld>
Таким образом, short ответ на ваш вопрос no .Нет строки, которую можно вставить в текстовое поле, которая вызывает вставку этого XML, и пока еще нет поддержки API для добавления полей.
Подход заключается в том, чтобы получить элемент <a:p>
для текстового поля ивставьте этот XML в него, используя вызовы lxml (процесс, обычно называемый «обходной функцией» в других python-pptx
сообщениях).
Вы можете получить элемент a:p
, например, так:
p = textbox.text_frame.paragraphs[0]._p
Нечто подобное может работать и, по крайней мере, дает набросок этого подхода:
from pptx.oxml import parse_xml
from pptx.oxml.ns import nsdecls
# ---get a textbox paragraph element---
p = your_textbox.text_frame.paragraphs[0]._p
# ---add fld element---
fld_xml = (
'<a:fld %s id="{1F4E2DE4-8ADA-4D4E-9951-90A1D26586E7}" type="slidenum">\n'
' <a:rPr lang="en-US" smtClean="0"/>\n'
' <a:t>2</a:t>\n'
'</a:fld>\n' % nsdecls("a")
)
fld = parse_xml(fld_xml)
p.append(fld)
Число, заключенное в элемент a:t
, является кэшированным номером слайда и может не обновляться автоматическиPowerPoint при открытии презентации.Если это так, то при вставке вам нужно сделать это правильно, но он будет автоматически обновляться при перетасовке слайдов.