Python’da Sunum Slide Master’larını Yönet
Genel Bakış
Bir slide master, bir grup slayt için ortak tasarım ayarlarını tanımlar. Ortak şekiller, logolar, arka planlar, metin stilleri, tema ayarları ve alt bilgi ayarları içerebilir. PowerPoint’te bir slide master’ı düzenlemek, aynı biçimlendirmeyi her slaytta tekrarlamadan sunumu tutarlı tutmanın yaygın yoludur.
Aspose.Slides for Python via .NET aynı modeli destekler. Bir sunum bir veya daha fazla master slayt içerebilir ve her master slayt birden çok layout slaytı barındırabilir. Normal slaytlar doğrudan bir master slayta başvurmaz. Bunun yerine, normal bir slayt bir layout slaytını kullanır ve bu layout slayt bir master slayta aittir.
Hiyerarşi şudur:
- Slide master – ortak tasarımı ve temayı tanımlar.
- Layout slayt – yer tutucuların ve layout‑seviyesi biçimlendirmelerin özel düzenini tanımlar.
- Normal slayt – gerçek sunum içeriğini barındırır ve bir layout slaytı kullanır.

Aspose.Slides’ta bir slide master, MasterSlide sınıfı ile temsil edilir. Bir sunumdaki tüm master slaytlar Presentation.masters koleksiyonu üzerinden erişilebilir.
Inheritance
Aynı özellik birden çok seviyede tanımlandığında, daha spesifik seviye geçerli olur. Örneğin, bir master slayt ve bir layout slayt aynı arka planı tanımlarsa, o layout’a dayanan slaytlar layout arka planını kullanır. Layout slaytları hakkında daha fazla bilgi için Apply or Change Slide Layouts sayfasına bakın.Slide Master’lara Erişim
PowerPoint’te View > Slide Master menüsünden Slide Master görünümünü açabilirsiniz.

Aspose.Slides’ta master slaytlara erişmek için masters koleksiyonunu kullanın:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
first_master_slide = presentation.masters[0]
master_slide_count = len(presentation.masters)
first_master_layout_slide_count = len(first_master_slide.layout_slides)
print("Master slides: " + str(master_slide_count))
print("Layouts in the first master: " + str(first_master_layout_slide_count))
Ayrıca bir normal slaytın kullandığı master slaytı, o slaytın layout’u üzerinden elde edebilirsiniz:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slide = presentation.slides[0]
layout_slide = slide.layout_slide
master_slide = layout_slide.master_slide
master_slide_name = master_slide.name
print(master_slide_name)
Bir Slide Master’ın İçeriği
Bir master slayt, slayt benzeri bir nesnedir. Ortak slayt davranışını BaseSlide sınıfından kalıtır; bu sayede normal ve layout slaytlarda kullanılan birçok slayt özelliğine erişebilir. Master‑özel üyeler MasterSlide API sayfasında listelenir.
Sık kullanılan master slayt üyeleri şunlardır:
| Üye | Amaç |
|---|---|
background |
Master‑seviyesi slayt arka planını ayarlar. |
shapes |
Master üzerine yerleştirilen şekilleri (logolar, resim çerçeveleri, ortak metin vb.) depolar. |
layout_slides |
Master’a ait layout slaytları saklar. |
theme_manager |
Master tema API’lerine erişim sağlar. |
header_footer_manager |
Master ve onun alt layoutları için başlık, alt bilgi, tarih ve slayt numaralarını kontrol eder. |
get_depending_slides |
Layoutları aracılığıyla master’a bağımlı olan normal slaytları döndürür. |
Slide Master’a Görüntü Ekleme
Bir master slayta resim eklediğinizde, o master’dan layout kullanan slaytlarda görünür. Logolar, filigranlar, dekoratif şeritler ve diğer tekrarlanan görsel öğeler için faydalıdır.
Aşağıdaki örnek, ilk master slayta bir logo ekler:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
with open("logo.png", "rb") as logo_stream:
logo_bytes = logo_stream.read()
logo_image = presentation.images.add_image(logo_bytes)
master_slide.shapes.add_picture_frame(
slides.ShapeType.RECTANGLE,
20,
20,
80,
80,
logo_image)
presentation.save("presentation-with-logo.pptx", slides.export.SaveFormat.PPTX)
Resim çerçeveleri hakkında daha fazla bilgi için Picture Frame sayfasına bakın.
Yer Tutucularla Çalışma
Yer tutucular genellikle layout slaytlarda tanımlanır. Master slayt, bu layoutların devraldığı ortak stil ve temayı sağlar; her layout ise hangi yer tutucuların mevcut olduğunu ve nerede konumlanacağını belirler.
PowerPoint’te yer tutucu komutları Slide Master görünümünde bulunur.

Aspose.Slides’ta yeni yer tutucular eklemek için master’a ait layout slayt üzerinde çalışın:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
blank_layout_slide = master_slide.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
if blank_layout_slide is None:
blank_layout_slide = presentation.layout_slides.add(
master_slide,
slides.SlideLayoutType.BLANK,
"Blank")
blank_layout_slide.placeholder_manager.add_text_placeholder(60, 120, 600, 80)
presentation.slides.add_empty_slide(blank_layout_slide)
presentation.save("presentation-with-placeholder.pptx", slides.export.SaveFormat.PPTX)
Mevcut yer tutucu şekillerini de biçimlendirebilirsiniz. Aşağıdaki örnek, başlık yer tutucusunu bulur ve doğrusal bir degrade doldurma uygular:
import aspose.pydrawing as draw
import aspose.slides as slides
def find_placeholder(master_slide, placeholder_type):
for shape in master_slide.shapes:
if isinstance(shape, slides.AutoShape) and shape.placeholder is not None:
if shape.placeholder.type == placeholder_type:
return shape
return None
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
title_placeholder = find_placeholder(master_slide, slides.PlaceholderType.TITLE)
if title_placeholder is not None:
red_gradient_color = draw.Color.from_argb(255, 0, 0)
purple_gradient_color = draw.Color.from_argb(128, 0, 128)
title_placeholder.fill_format.fill_type = slides.FillType.GRADIENT
title_placeholder.fill_format.gradient_format.gradient_shape = slides.GradientShape.LINEAR
title_placeholder.fill_format.gradient_format.gradient_stops.add(0, red_gradient_color)
title_placeholder.fill_format.gradient_format.gradient_stops.add(255, purple_gradient_color)
presentation.save("presentation-title-style.pptx", slides.export.SaveFormat.PPTX)

Daha fazla yer tutucu ve metin biçimlendirme seçeneği için Set Prompt Text in Placeholder ve Text Formatting sayfalarına bakın.
Slide Master Arka Planını Değiştirme
Bir master arka planı, üzerine değişiklik yapılmayan layout ve slaytlar tarafından devralınır. Aşağıdaki örnek, ilk master slayt için katı bir arka plan rengi ayarlar:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
master_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
master_slide.background.fill_format.fill_type = slides.FillType.SOLID
master_slide.background.fill_format.solid_fill_color.color = draw.Color.forest_green
presentation.save("presentation-master-background.pptx", slides.export.SaveFormat.PPTX)
İlgili konular için Presentation Background ve Presentation Theme sayfalarına göz atın.
Slide Master’ı Başka Bir Sunuma Kopyalama
MasterSlideCollection sınıfındaki add_clone metodunu kullanarak bir master slaytı başka bir sunuma kopyalayabilirsiniz. Kopyalanan master, hedef sunumdaki layout ve slaytlar tarafından kullanılabilir.
import aspose.slides as slides
with slides.Presentation("source.pptx") as source_presentation:
with slides.Presentation("destination.pptx") as destination_presentation:
source_master_slide = source_presentation.masters[0]
cloned_master_slide = destination_presentation.masters.add_clone(source_master_slide)
destination_presentation.save("destination-with-master.pptx", slides.export.SaveFormat.PPTX)
Normal slaytları ve bağlı masterlarını bir arada klonlamak isterseniz Clone Slides sayfasına bakın.
Birden Çok Slide Master Ekleme
Bir sunum birden fazla master slayt içerebilir. Bu, farklı bölümlerin farklı marka, sayfa yapısı veya tema ayarları gerektirdiği durumlarda kullanışlıdır.

Aşağıdaki örnek, varsayılan master’ı klonlar, klona farklı bir arka plan verir, bu klon master’ın altına boş bir layout oluşturur ve bu layout üzerinden yeni bir slayt ekler:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
default_master_slide = presentation.masters[0]
section_master_slide = presentation.masters.add_clone(default_master_slide)
section_master_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
section_master_slide.background.fill_format.fill_type = slides.FillType.SOLID
section_master_slide.background.fill_format.solid_fill_color.color = draw.Color.light_steel_blue
section_blank_layout = section_master_slide.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
if section_blank_layout is None:
section_blank_layout = presentation.layout_slides.add(
section_master_slide,
slides.SlideLayoutType.BLANK,
"Section Blank")
presentation.slides.add_empty_slide(section_blank_layout)
presentation.save("presentation-with-multiple-masters.pptx", slides.export.SaveFormat.PPTX)
Slide Master’ları Karşılaştırma
Master slaytlar, BaseSlide sınıfından miras alınan equals metodu ile karşılaştırılabilir. Karşılaştırma, şekiller, metin, biçimlendirme, animasyonlar ve diğer slayt ayarları gibi yapısal ve statik içeriği kontrol eder. Slayt ID’leri gibi benzersiz tanımlayıcılar veya geçerli tarih gibi dinamik yer tutucu değerleri karşılaştırılmaz.
import aspose.slides as slides
with slides.Presentation("first.pptx") as first_presentation:
with slides.Presentation("second.pptx") as second_presentation:
first_presentation_master_count = len(first_presentation.masters)
second_presentation_master_count = len(second_presentation.masters)
for first_master_index in range(first_presentation_master_count):
for second_master_index in range(second_presentation_master_count):
first_master_slide = first_presentation.masters[first_master_index]
second_master_slide = second_presentation.masters[second_master_index]
are_master_slides_equal = first_master_slide.equals(second_master_slide)
if are_master_slides_equal:
print(
"first.pptx master #{} equals second.pptx master #{}".format(
first_master_index,
second_master_index))
Daha fazla bilgi için Compare Presentation Slides sayfasına bakın.
Slide Master Görünümünü Varsayılan Görünüm Olarak Ayarlama
Sunumun ViewProperties üzerindeki last_view özelliğini kullanarak PowerPoint’in ilk açtığında hangi görünümü göstereceğini kontrol edebilirsiniz. Aşağıdaki örnek, sunumu Slide Master görünümünde açar:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("presentation-master-view.pptx", slides.export.SaveFormat.PPTX)
Daha fazla görünüm ayarı için Save Presentation sayfasına bakın.
Kullanılmayan Master Slaytları Kaldırma
Bazen bir sunum, hiçbir normal slayt tarafından kullanılmayan master slaytlar içerir. Kullanılmayan master’ları kaldırmak dosya boyutunu azaltabilir ve şablon bakımını basitleştirebilir.
remove_unused metodunu kullanarak masters koleksiyonundan kullanılmayan master’ları kaldırabilirsiniz:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
presentation.masters.remove_unused(True)
presentation.save("presentation-clean.pptx", slides.export.SaveFormat.PPTX)
Ayrıca düşük‑kodlu remove_unused_master_slides metodunu Compress sınıfından da kullanabilirsiniz:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slides.lowcode.Compress.remove_unused_master_slides(presentation)
presentation.save("presentation-clean.pptx", slides.export.SaveFormat.PPTX)
SSS
Slide master ile layout slayt arasındaki fark nedir?
Slide master, tema, arka plan, ortak şekiller ve metin stilleri gibi ortak tasarım ayarlarını tanımlar. Layout slayt bir master’a aittir ve yer tutucuların belirli bir düzenini tanımlar. Normal bir slayt bir layout slayt kullanır; böylece hem layout hem de master’dan miras alır.
Bir sunum birden çok slide master içerebilir mi?
Evet. Bir sunum birden fazla slide master barındırabilir. Farklı bölümlerin farklı görsel sistemler veya marka ihtiyaçları olduğunda birden fazla master kullanın.
Yer tutucuları master slayta mı yoksa layout slayta mı eklemeliyim?
Çoğu durumda yer tutucuları layout slaytlara ekleyin. Paylaşılan görsel öğeleri ve ortak biçimlendirmeyi master slayta koyun, ardından normal slaytların kullanacağı içerik yer tutucularını layout slaytlara yerleştirin.
Kullanımda olan bir master slaytı silebilir miyim?
Hayır. Bağımlı slaytları olan bir master slayt doğrudan güvenli şekilde kaldırılamaz. Önce bu slaytları başka bir master altındaki layoutlara taşıyın veya yalnızca kullanılmayan master’ları temizleyen bir yöntem kullanın.