Aspose.Slides FOSS Python API Referință
A. În cazul în care: loc de păstrare este o regiune rezervată pe un layout sau diapozitiv principal care definește: o poziție, dimensiune și formatare implicite pentru un anumit tip de conținut (titlu, În cazul în care o diapozitivă obişnuită se bazează pe un document de tip “Slide” sau “Date”, este necesar să fie prezentată la nivelul unui tablou. Layout care are locurile de plasare, formele corespunzătoare pe diapozitiv moștenesc acele poziții și formaturi.
Paletă de servicii: aspose.slides_foss
Cum funcţionează în această implementare?
Placeholder-urile sunt reprezentate intern ca forme obișnuite ale căror XML poartă o <p:ph> element care specifică tipul de păstrare a locului și indexul. Shape clasa de citeste: <p:ph> pentru a determina dacă o formă este un loc de pășit și merge pe layout → master chain de moștenire pentru a rezolva poziția formei atunci când nu există locală <a:xfrm> este definită.
Nu există un singur. Placeholder fișier de clasă în această versiune; marcator de poziție identitatea este suportată de subiacentul AutoShape, Table, sau alte forme.
Detectarea formelor de păstrare a locului
O formă pe un layout sau diapozitiv XML este un marcator de loc atunci când nvSpPr/nvPr (sau blocul de proprietăți non-vizuale echivalente) conține o <p:ph> elementul.
În ceea ce priveşte Shape clasa de bază expune ajutoarea internă. _get_placeholder_info() care: returnează un (ph_type, ph_idx) cu o dublă sau None pentru formele fără spațiu de plasare.
Inversiunea de tip layout și master placeholder
Când o formă de diapozitiv nu are propria sa forma. <a:xfrm> elementul, cadrul de aplicare al rezolvă poziția și dimensiunea de la marcatorul corespunzător din diapozitivul de amenajare; și apoi din diapozitivul principal dacă nici layoutul nu definește unul. Acest lucru este moștenirea este gestionată automat; codul client accesează doar shape.x, shape.y, shape.width, și shape.height.
PlaceholderType (declarată în __all__)
Următoarele tipuri de spațiu sunt declarate în suprafața API publică. Acestea mapează la o dată de type caracteristică a <p:ph> în OOXML:
| Valori de tip | Descriere: |
|---|---|
body | Corpul / zona de conținut |
title | Titlul diapozitivului |
ctrTitle | Titlu în centru |
subTitle | Subtitrarea: |
dt | Data și ora |
ftr | Subpoziție |
sldNum | Numărul diapozitivului |
pic | Placar pentru imagini |
obj | Obiectul generic |
chart | Graficul |
tbl | Tabelul |
clipArt | Artă clip |
dgm | Diagrama de date |
media | Obiect media |
header | Header (notes pages){Categorie:Documentele de activitate} |
Exemple de coduri
Identifică formele de păstrare a locului pe un 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}")Adăugați o diapozitivă și lucrați cu titlul său de plasator
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)Adăugați text la toate formele pe un diapozitiv (inclusiv punctele de plasare)
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)