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 tipe | Deskripsi |
|---|---|
body | Badan / area isi |
title | Judul slide |
ctrTitle | Judul terpusat |
subTitle | Subtitle: “Sakitnya” |
dt | Tanggal dan Waktu |
ftr | Bagian bawah |
sldNum | Nomor slaid |
pic | Penjaga tempat gambar |
obj | Objek generik |
chart | Bagan |
tbl | Tabel (Inggris) |
clipArt | Clip art (seni klip) |
dgm | Diagram |
media | Objek media |
header | Header (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)