2017-09-05 2 views
0

Ich habe begonnen, 'Pptx' Bibliothek zu verwenden, um programmgesteuert einige PPT-basierten Bericht zu generieren. Wir haben eine Firmenvorlage, die ich als Basis verwende. Er enthält einen Master-Folie mit Aufzählungsliste in Einzelspaltenformat, das wie folgt aus (für jede Ebene wie Aufzählungstyp und Farbe, aber mit unterschiedlichen Formatierungen Leider können nicht unbedingt pic hier teilen hier.) Aussieht:So ändern Sie Einzug auf Bulleted-Liste auf PPT-Folie mit Pptx Python-Bibliothek

Bulleted list format

Ich wollte zu wissen, ob es eine Möglichkeit gibt, die Position der verschiedenen Ebenen zu ändern, so wie wir es mit dem Lineal (oder Rechtsklick> Absätze> Einrückung) in MS PowerPoint ändern würden. Wenn ich den "level" -Parameter der Aufzählungsliste ändere, ändert er sich mit allen Formatierungen von der ersten Ebene zur zweiten Ebene.

Aber ich möchte nur die erste Ebene um ein paar Zentimeter nach rechts verschieben. So würde es wie folgt aussehen:

Bulleted list shifted to right

ich eine offensichtliche Art und Weise kennen zu erreichen ist durch neue Master-Folie mit den erforderlichen Format hinzugefügt und verwendet wird. Wenn jedoch Einzüge mehrfach geändert werden müssen, ist es schwierig, für jeden speziellen Fall eine neue Folienvorlage hinzuzufügen. Daher suche ich, ob es eine Möglichkeit gibt, programmatisch die 'pptx'-Funktionalität zu verwenden. Bisher konnte ich ein solches Feature in 'pptx' nicht finden, aber vielleicht habe ich es übersehen oder es gibt möglicherweise einen Workaround. Wenn dem so wäre, wäre ich daran interessiert zu wissen.

Antwort

0

Die kurze Antwort ist "Nein". Die aktuelle Version von python-pptx unterstützt keine Bullet-Formatierung in seiner API.

Um dies zu tun, müssten Sie die zugrunde liegende XML direkt bearbeiten. Sie können nach "python-pptx workaround function" suchen, um einige Beispiele zu erhalten.

Ich glaube, das Element von Interesse ist p:sp/p:txBody/a:lstStyle, Elemente wie "lvl1pPr" und "lvl2pPr" und so weiter enthalten.

Ein Verweis auf das Element auf p:txBodyShape.text_frame._element

verfügbar
Verwandte Themen