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 tipDescriere:
bodyCorpul / zona de conținut
titleTitlul diapozitivului
ctrTitleTitlu în centru
subTitleSubtitrarea:
dtData și ora
ftrSubpoziție
sldNumNumărul diapozitivului
picPlacar pentru imagini
objObiectul generic
chartGraficul
tblTabelul
clipArtArtă clip
dgmDiagrama de date
mediaObiect media
headerHeader (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)

Vezi și:

 Română