.NET'te Slayt Düzenlerini Uygula veya Değiştir

Genel Bakış

Bir slayt düzeni, başlıklar, metin, resimler, grafikler ve tablolar gibi yer tutucuların konumlarını ve biçimlendirmesini tanımlar. Bir düzenin uygulanması, slaytlara tutarlı bir yapı kazandırırken her slaytın kendi içeriğini barındırmasına izin verir.

En yaygın düzenler şunlardır:

  • Başlık Slaytı: Başlık ve alt başlık yer tutucularını içerir.
  • Başlık ve İçerik: Bir başlık yer tutucusu ve genel amaçlı bir içerik yer tutucusu içerir.
  • Boş: İçerik yer tutucusu içermez ve her şeklin manuel olarak konumlandırılacağı durumlar için kullanışlıdır.

Düzen Kalıtımını Anlama

Bir sunumun üç ilgili seviyesi vardır:

  1. Bir ana slayt temayı, ortak biçimlendirmeyi, arka planları ve ortak nesneleri tanımlar.
  2. Bir düzen slaytı bir ana slayta aittir ve belirli bir yer tutucu düzenini tanımlar.
  3. Bir normal slayt bir düzen kullanır ve o slayt için girilen içeriği depolar.

Normal bir slayt temayı ve biçimlendirmeyi düzeninden devralır ve düzen de ana slayttan devralır. Normal bir slaytta doğrudan ayarlanan bir değer, o seviyedeki devralınan değeri geçersiz kılar. Bir normal slayt oluşturulduğunda, yer tutucu şekilleri seçili düzenden üretilir; bu yer tutuculara girilen içerik ise normal slayta aittir.

Kaydırılardan slayt oluşturulmadan önce bir düzene gerekli yer tutucular eklenmelidir. Daha sonra bir düzene başka bir yer tutucu eklemek, mevcut normal slaytlara otomatik olarak karşılık gelen bir yer tutucu şekli eklemez.

Bu ilişki iki önemli sonuca sahiptir:

  • Bir düzende devralınan biçimlendirmeyi veya mevcut yer tutucu geometrisini değiştirmek, ona bağlı tüm slaytları güncelleyebilir. Zaten kullanımdaki bir düzeni düzenlemeden önce, bağlı slaytlarını inceleyin ve ortaya çıkan sunumu gözden geçirin.
  • Bir slayt hâlâ kullandığı bir düzen silinemez. Önce bağlı slaytları başka bir düzene yeniden atayın ya da yalnızca kullanılmayan düzenleri kaldırın.

Bu hiyerarşinin üst seviyesi hakkında daha fazla bilgi için Slayt Master bölümüne bakın.

Bir Slayt Düzeni Seçme ve Uygulama

Sunum standart PowerPoint düzen tanımlarını takip ediyorsa bir düzen türü kullanın. Düzen adları kullanıcı tarafından düzenlenebilir ve yerelleştirilebilir, bu yüzden kaynak şablonu kontrol etmiyorsanız ad‑temelli seçim daha az güvenilirdir.

Aşağıdaki örnek, ilk ana slaytta Başlık ve İçerik arar. Bu düzen mevcut değilse kasıtlı olarak Boş a geri döner. İkinci null kontrolü, bir sunumun yalnızca özel düzenler içerebileceği durumlar için gereklidir. Seçilen düzen daha sonra ilk normal slayta ISlide.LayoutSlide özelliği aracılığıyla uygulanır.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlides = presentation.Masters[0].LayoutSlides;
var targetLayout = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Blank);

if (targetLayout == null)
{
    throw new InvalidOperationException("The first master does not contain a suitable layout slide.");
}

presentation.Slides[0].LayoutSlide = targetLayout;
presentation.Save("output-with-new-layout.pptx", SaveFormat.Pptx);

Bir slaytın düzenini değiştirmek, slayta doğrudan eklenmiş olağan şekilleri kaldırmaz. Ancak yer tutucu konumları, devralınan biçimlendirme ve mevcut yer tutucular ile yeni düzen arasındaki eşleşme değişebilir; bu yüzden çok farklı düzenler arasında geçiş yaparken çıktıyı inceleyin.

Bir Düzen Slaytı Ekleme

Seçim ve oluşturma ayrı işlemlerdir. Önceki örnek mevcut bir düzeni seçer; yeni bir tane oluşturmaz. Bir düzen oluşturmak için hedef ana slaydın düzen koleksiyonunda IMasterLayoutSlideCollection.Add yöntemini çağırın.

Aşağıdaki örnek her zaman Rapor Başlığı ve İçeriği adında yeni bir Başlık ve İçerik düzeni ekler, ardından buna dayalı bir normal slayt ekler. Düzen adları koleksiyon içinde benzersiz olmalıdır.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var masterSlide = presentation.Masters[0];
var reportLayout = masterSlide.LayoutSlides.Add(SlideLayoutType.TitleAndObject, "Report Title and Content");
presentation.Slides.AddEmptySlide(reportLayout);

presentation.Save("output-with-report-layout.pptx", SaveFormat.Pptx);

Sadece şablon gerçekten başka bir yeniden kullanılabilir yapıya ihtiyaç duyduğunda bir düzen ekleyin. Uygun bir düzen zaten varsa, bir kopya oluşturmaktan kaçının; bunun yerine mevcut düzeni seçip yeniden kullanın.

Bir Düzen Slaytına Yer Tutucular Ekleme

ILayoutSlide.PlaceholderManager özelliği, bir düzene yer tutucu şekilleri eklemek için bir ILayoutPlaceholderManager sağlar.

PowerPoint Yer Tutucusu ILayoutPlaceholderManager Yöntemi
İçerik AddContentPlaceholder(float x, float y, float width, float height)
İçerik (Dikey) AddVerticalContentPlaceholder(float x, float y, float width, float height)
Metin AddTextPlaceholder(float x, float y, float width, float height)
Metin (Dikey) AddVerticalTextPlaceholder(float x, float y, float width, float height)
Resim AddPicturePlaceholder(float x, float y, float width, float height)
Grafik AddChartPlaceholder(float x, float y, float width, float height)
Tablo AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
Medya AddMediaPlaceholder(float x, float y, float width, float height)
Çevrimiçi Görüntü AddOnlineImagePlaceholder(float x, float y, float width, float height)

Aşağıdaki örnek Boş düzeninin var olduğunu doğrular, ona dört yer tutucu ekler ve ardından değiştirilmiş düzeni kullanan bir normal slayt oluşturur. Sıralama kasıtlıdır: yer tutucular normal slayt oluşturulmadan önce eklenir, böylece Aspose.Slides o slaytta karşılık gelen yer tutucu şekillerini üretebilir.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();

var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (blankLayout == null)
{
    throw new InvalidOperationException("The presentation does not contain a Blank layout slide.");
}

var placeholderManager = blankLayout.PlaceholderManager;
placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
placeholderManager.AddTablePlaceholder(350, 310, 350, 180);

presentation.Slides.AddEmptySlide(blankLayout);
presentation.Save("output-with-placeholders.pptx", SaveFormat.Pptx);

Sonuç:

Düzen slaydındaki yer tutucular

Kullanılmayan Düzen Slaytlarını Kaldırma

Compress.RemoveUnusedLayoutSlides yöntemini kullanarak hiçbir normal slayt tarafından referans edilmeyen düzenleri kaldırın. Yöntem hâlâ kullanılan düzenleri olduğu gibi bırakır.

using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;

using var presentation = new Presentation("input.pptx");

Compress.RemoveUnusedLayoutSlides(presentation);
presentation.Save("output-without-unused-layouts.pptx", SaveFormat.Pptx);

Belirli bir düzeni kaldırmak için önce HasDependingSlides özelliğini ya da GetDependingSlides yöntemini kullanın. ILayoutSlide.Remove metodunu çağırmadan önce bağlı slaytları yeniden atayın. Kullanılan bir düzeni kaldırmaya çalışmak bir PptxEditException fırlatır.

Bir Düzen Slaytında Alt Bilgi Görünürlüğünü Kontrol Etme

Bir düzenin kendi alt bilgi, slayt numarası ve tarih‑saat yer tutucuları vardır. Bu yer tutucuları bir düzen için kontrol etmek üzere ILayoutSlide.HeaderFooterManager özelliğini kullanın. Bu, örneğin içerik düzenlerinin alt bilgi göstermesi, başlık düzenlerinin ise göstermemesi gerektiğinde faydalıdır.

Aşağıdaki örnek bir düzeni güvenli bir şekilde seçer ve alt bilgi öğelerini görünür kılar:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (layoutSlide == null)
{
    throw new InvalidOperationException("The presentation does not contain a suitable layout slide.");
}

var headerFooterManager = layoutSlide.HeaderFooterManager;
headerFooterManager.SetFooterVisibility(true);
headerFooterManager.SetSlideNumberVisibility(true);
headerFooterManager.SetDateTimeVisibility(true);
headerFooterManager.SetFooterText("Footer text");
headerFooterManager.SetDateTimeText("Date and time text");

presentation.Save("output-with-layout-footers.pptx", SaveFormat.Pptx);

Bir Ana Slayt ve Alt Düzenlerinde Alt Bilgi Görünürlüğünü Kontrol Etme

Bir ana slayt hiyerarşisi boyunca tutarlı alt bilgi ayarları uygulamak için IMasterSlide.HeaderFooterManager özelliğini kullanın. IMasterSlideHeaderFooterManager sınıfının yayma yöntemleri, ana slayt, ona bağlı düzen slaytları ve normal slaytlar üzerinde çalışır; yalnızca tek bir normal slaytı hedef almaz.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var headerFooterManager = presentation.Masters[0].HeaderFooterManager;
headerFooterManager.SetFooterAndChildFootersVisibility(true);
headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.SetFooterAndChildFootersText("Footer text");
headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text");

presentation.Save("output-with-master-footers.pptx", SaveFormat.Pptx);

SSS

Bir Ana Slayt ile Bir Düzen Slaytı Arasındaki Fark Nedir?

Ana slayt sunumun temasını ve ortak biçimlendirmesini tanımlar. Bir düzen slaytı ana slayta aittir ve bir kez kullanılabilir yer tutucu düzeni tanımlar. Normal slaytlar bu düzenleri kullanır ve slayta özgü içeriği depolar.

Bir Düzen Slaytını Bir Sunumdan Başka Bir Sunuma Kopyalayabilir miyim?

Evet. Hedef koleksiyona AddClone yöntemiyle bir kopya ekleyin. Sunumlar arasında kopyalama yaparken, kaynak düzenin kullandığı yazı tiplerini, temaları, resimleri ve diğer kaynakları da doğrulayın.

Kullanımdaki Bir Düzeni Değiştirirsem Ne Olur?

Bağlı slaytlar, yerel olarak etkilenmiş biçimlendirme veya nesneleri geçersiz kılmadıkları sürece düzen değişikliklerini devralır. Yer tutucu geometrisi ve devralınan stil birçok slaytta bir anda değişebilir. Düzen üzerinde değişiklik yapmadan önce etkilenen slaytları belirlemek için GetDependingSlides yöntemini kullanın.

Hâlâ Kullanımda Olan Bir Düzeni Kaldırırsam Ne Olur?

Aspose.Slides bir PptxEditException fırlatır. Önce bağlı slaytları yeniden atayın veya yalnızca referans edilmeyen düzenleri kaldırmak için RemoveUnusedLayoutSlides yöntemini kullanın.