Platzhalter Aspose.Slides FOSS Python API-Referenz
A) Die Platzhalter ist ein reservierter Bereich auf einem Layout oder Master-Slide, der definiert: eine Standardposition, Größe und Formatierung für einen bestimmten Inhaltstyp (Titel, Wenn eine normale Folie auf einer Layout, das Platzhalter hat, die entsprechenden Formen auf der Folie erben diese Positionen und Formate.
Package: aspose.slides_foss
Wie die Stellenhalter bei dieser Umsetzung arbeiten
Platzhalter werden intern als gewöhnliche Formen dargestellt, deren XML eine <p:ph> Element, das den Platzhaltertyp und -index angibt. Shape Klasse Lies: <p:ph> Um zu bestimmen, ob eine Form ein Platzhalter ist und die Layout → Master-Erbkette, um die Position der Form zu lösen, wenn keine lokale <a:xfrm> ist definiert.
Es gibt keinen Standalone-System. Placeholder Klassendatei in dieser Version; Platzhalter Identität wird vom zugrunde liegenden Wertpapier getragen. AutoShape, Table,oder andere Form.
Aufspüren von Platzhalterformen
Eine Form auf einem Layout oder einer XML-Slide ist ein Platzhalter, wenn ihre nvSpPr/nvPr (oder Gleichwertige nicht visuelle Eigenschaften) enthält eine <p:ph> Element. Das ist das Problem.
Die Shape Basisklasse zeigt den internen Helfer an. _get_placeholder_info() die gibt a zurück. (ph_type, ph_idx) Tuple oder None für nicht platzhalterförmige Formen.
Layout und Master-Placeholder-Vererbung
Wenn eine Folie keine eigene Form hat <a:xfrm> Die Kommission hat die die Position und Größe aus dem passenden Platzhalter in der Layout-Slide auflösen, und Dann von der Master-Slide, wenn das Layout auch keine definiert. Erbschaft wird automatisch verarbeitet; nur Clientcode kann auf die Daten zugreifen. shape.x, shape.y, shape.width,und . shape.height.
PlaceholderType (erklärte in der __all__)
Die folgenden Platzhaltertypen werden in der öffentlichen API-Oberfläche deklariert. Sie erstellen eine Karte der Kommission. type Eigenschaft von <p:ph> in OOXML:
| Typwert | Beschreibung |
|---|---|
body | Körper / Inhaltfläche |
title | Titel der Folie |
ctrTitle | Zentralisierter Titel |
subTitle | Untertitel: |
dt | Datum und Uhrzeit |
ftr | Fußzeile |
sldNum | Bildnummer |
pic | Bild-Platzhalter |
obj | Generisches Objekt |
chart | Tabelle der |
tbl | Tabelle 1 und 2 |
clipArt | Clip-Art (Klippkunst) |
dgm | Diagramm |
media | Medienobjekt |
header | - Ich bin nicht hier. |
Codebeispiele
Identifizieren Sie Platzhalterformen auf einem Layout
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
layout = prs.layout_slides[0]
print(f"Layout: {layout.name!r}")
for shape in layout.shapes:
# Access the internal placeholder info via the XML helper
ph_info = shape._get_placeholder_info() if hasattr(shape, '_get_placeholder_info') else None
if ph_info:
ph_type, ph_idx = ph_info
print(f" Placeholder: type={ph_type!r} idx={ph_idx}"
f" at ({shape.x:.0f}, {shape.y:.0f})")
else:
print(f" Regular shape: {shape.name!r}")Fügen Sie eine Folie hinzu und arbeiten Sie mit dem Titel-Platzhalter daran.
import aspose.slides_foss as slides
from aspose.slides_foss import SlideLayoutType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
# Use the Title layout which has a title placeholder
title_layout = prs.layout_slides.get_by_type(SlideLayoutType.TITLE)
if title_layout is None:
title_layout = prs.layout_slides[0]
slide = prs.slides.add_empty_slide(title_layout)
# The first shape on a TITLE layout is typically the title placeholder
for shape in slide.shapes:
if hasattr(shape, 'add_text_frame'):
shape.add_text_frame("Quarterly Review")
break
prs.save("titled-slide.pptx", SaveFormat.PPTX)Text zu allen Formen einer Folie hinzufügen (einschließlich Platzhalter)
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("template.pptx") as prs:
slide = prs.slides[0]
for i, shape in enumerate(slide.shapes):
if hasattr(shape, 'add_text_frame'):
try:
shape.add_text_frame(f"Content {i + 1}")
except Exception:
pass # some shapes may not accept text
prs.save("filled.pptx", SaveFormat.PPTX)