Placeholder Aspose.Slides FOSS Python API Referensi

A. Tidak ada tempat penutup adalah wilayah yang terisi pada tata letak atau slide utama yang mendefinisikan posisi default, ukuran dan format untuk jenis konten tertentu (judul, Teks tubuh, footer, tanggal, nomor slide, dll.). Ketika slides biasa didasarkan pada sebuah gambar yang tidak dapat diunduh. tata letak yang memiliki tempat penjaga, bentuk-bentuk yang sesuai pada slide mewarisi mereka posisi dan format.

Paket: aspose.slides_foss


Bagaimana Pemegang Tempat Bekerja dalam Implementasi Ini?

Penjaga tempat diwakili secara internal sebagai bentuk biasa yang XML membawa sebuah <p:ph> elemen yang menentukan jenis tempat penjaga dan indeks. Shape kelas membaca <p:ph> untuk menentukan apakah bentuk adalah tempat penyimpanan dan berjalan di tata letak → rantai pewarisan master untuk memecahkan posisi bentuk ketika tidak ada lokal <a:xfrm> ditentukan.

Tidak ada yang berdiri sendiri. Placeholder file kelas dalam rilis ini; tempat tanda identitas yang dibawa oleh underlying AutoShape, Table, atau bentuk lainnya.


Mendeteksi Bentuk Penjaga Tempat

Bentuk pada tata letak atau slide XML adalah tempat penjaga ketika bentuknya nvSpPr/nvPr (atau blok properti non-visual yang setara) berisi sebuah <p:ph> elemen.

Pengelolaan Shape kelas dasar mengekspos pembantu internal _get_placeholder_info() yang mana mengembalikan a (ph_type, ph_idx) satu atau dua kali lipat None untuk bentuk yang tidak memiliki tempat.


Layout dan Master Placeholder Warisan

Ketika bentuk slide tidak memiliki sendiri <a:xfrm> elemen, kerangka kerja dan menentukan posisi dan ukuran dari tempat penjaga yang sesuai dalam slide tata letak, dan kemudian dari slide utama jika tata letak tidak mendefinisikan salah satu. Ini inheritance ditangani secara otomatis; kode klien hanya mengakses shape.x, shape.y, shape.width, dan shape.height.


PlaceholderType (diklaim dalam __all__)

Jenis tempat penyimpanan berikut dinyatakan di permukaan API publik. Mereka memetakan untuk type atribut dari <p:ph> dalam OOXML:

Nilai tipeDeskripsi
bodyBadan / area isi
titleJudul slide
ctrTitleJudul terpusat
subTitleSubtitle: “Sakitnya”
dtTanggal dan Waktu
ftrBagian bawah
sldNumNomor slaid
picPenjaga tempat gambar
objObjek generik
chartBagan
tblTabel (Inggris)
clipArtClip art (seni klip)
dgmDiagram
mediaObjek media
headerHeader (notes pages) (pemegang tempat)

Contoh Kode

Mengidentifikasi Bentuk Penjaga Tempat pada Tata Letak

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}")

Tambahkan Slide dan Bekerja dengan Titulnya Penjaga Tempat

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)

Tambahkan Teks ke Semua Bentuk di Slide (Termasuk Penandatangan Tempat)

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)

Lihat Juga

 Bahasa Indonesia