Android'de Slayt Düzenlerini Uygulama veya Değiştirme

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 içermesine 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 tutucusunu ve genel amaçlı bir içerik yer tutucusunu içerir.
  • Boş: İçerik yer tutucusu içermez ve her şeklin manuel olarak konumlandırılacağı durumlarda faydalıdır.

Düzen Mirasını Anlamak

Bir sunum üç ilgili seviyeye sahiptir:

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

Bir normal slayt, temasını ve biçimlendirmesini düzeninden miras alır ve düzen, masterından miras alır. Normal bir slaytta doğrudan ayarlanan bir değer, o seviyedeki miras alınan değerin üzerine yazar. Bir normal slayt oluşturulduğunda, yer tutucu şekilleri seçilen düzen üzerinden üretilir, bu yer tutuculara girilen içerik ise normal slayta aittir.

Bir slayt oluşturmadan önce bir düzene gerekli yer tutucuları ekleyin. 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üzen üzerindeki miras alınan biçimlendirmeyi veya mevcut yer tutucu geometrisini değiştirmek, ona bağlı tüm slaytları güncelleyebilir. Zaten kullanımda olan bir düzeni düzenlemeden önce, ona bağlı slaytları inceleyin ve ortaya çıkan sunumu gözden geçirin.
  • Bir slayt tarafından hâlâ kullanılan bir düzen kaldırılamaz. Önce bağlı slaytlarını başka bir düzene yeniden atayın veya yalnızca kullanılmayan düzenleri kaldırın.

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

Bir Slayt Düzeni Seçme ve Uygulama

Sunum standart PowerPoint düzen tanımlarını izlediğinde bir düzen türü kullanın. Düzen adları kullanıcı tarafından düzenlenebilir ve yerelleştirilebilir, bu nedenle ad tabanlı seçim, kaynağı şablonu kontrol etmediğiniz sürece daha az güvenilir olur.

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterLayoutSlideCollection layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
    ILayoutSlide targetLayout = layoutSlides.getByType(SlideLayoutType.TitleAndObject);

    if (targetLayout == null) {
        targetLayout = layoutSlides.getByType(SlideLayoutType.Blank);
    }

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

    presentation.getSlides().get_Item(0).setLayoutSlide(targetLayout);
    presentation.save("output-with-new-layout.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Bir slaytın düzenini değiştirmek, slayta doğrudan eklenmiş sıradan şekilleri kaldırmaz. Ancak, yer tutucu konumları, miras alınan biçimlendirme ve mevcut yer tutucular ile yeni düzen arasındaki eşleşme değişebilir; bu nedenle, önemli ölçüde 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; bir düzen oluşturmaz. Bir düzen oluşturmak için, hedef masterın düzen koleksiyonunda IMasterLayoutSlideCollection.add yöntemini çağırın.

Aşağıdaki örnek, her zaman Report Title and Content adlı yeni bir Başlık ve İçerik düzeni ekler ve ardından ona dayalı bir normal slayt ekler. Düzen adları koleksiyon içinde benzersiz olmalıdır.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
    ILayoutSlide reportLayout = masterSlide.getLayoutSlides().add(SlideLayoutType.TitleAndObject, "Report Title and Content");
    presentation.getSlides().addEmptySlide(reportLayout);

    presentation.save("output-with-report-layout.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Bir ş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 kopyasını oluşturmak yerine onu seçip yeniden kullanın.

Bir Düzen Slaytına Yer Tutucu Ekleme

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

PowerPoint Yer Tutucu ILayoutPlaceholderManager Method
Content addContentPlaceholder(float x, float y, float width, float height)
Content (Vertical) addVerticalContentPlaceholder(float x, float y, float width, float height)
Text addTextPlaceholder(float x, float y, float width, float height)
Text (Vertical) addVerticalTextPlaceholder(float x, float y, float width, float height)
Picture addPicturePlaceholder(float x, float y, float width, float height)
Chart addChartPlaceholder(float x, float y, float width, float height)
Table addTablePlaceholder(float x, float y, float width, float height)
SmartArt addSmartArtPlaceholder(float x, float y, float width, float height)
Media addMediaPlaceholder(float x, float y, float width, float height)
Online Image addOnlineImagePlaceholder(float x, float y, float width, float height)

Aşağıdaki örnek, Boş düzenin 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ıra kasıtlıdır: yer tutucular normal slayt oluşturulmadan önce eklenir, böylece Aspose.Slides o slaytta ilgili yer tutucu şekillerini oluşturabilir.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    ILayoutSlide blankLayout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);

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

    ILayoutPlaceholderManager placeholderManager = blankLayout.getPlaceholderManager();
    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.getSlides().addEmptySlide(blankLayout);
    presentation.save("output-with-placeholders.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Sonuç:

The placeholders on the layout slide

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

Compress.removeUnusedLayoutSlides yöntemini, hiçbir normal slaytın başvurduğu bir düzeni kaldırmak için kullanın. Yöntem, hâlâ kullanımda olan düzenleri olduğu gibi bırakır.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Compress.removeUnusedLayoutSlides(presentation);
    presentation.save("output-without-unused-layouts.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Belirli bir düzeni kaldırmak için önce onun hasDependingSlides veya getDependingSlides yöntemini kullanın. ILayoutSlide.remove yöntemini çağırmadan önce bağımlı slaytları yeniden atayın. Kullanılan bir düzeni kaldırmaya çalışmak bir PptxEditException hatasına yol açar.

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 amacıyla ILayoutSlide.getHeaderFooterManager yöntemini kullanın. Bu, örneğin içerik düzenlerinin alt bilgileri gösterirken başlık düzenlerinin göstermemesi gerektiğinde faydalıdır.

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    ILayoutSlide layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.TitleAndObject);

    if (layoutSlide == null) {
        layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
    }

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

    ILayoutSlideHeaderFooterManager headerFooterManager = layoutSlide.getHeaderFooterManager();
    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);
} finally {
    presentation.dispose();
}

Bir Master ve Çocuk Düzenlerinde Alt Bilgi Görünürlüğünü Kontrol Etme

Bir master hiyerarşisi boyunca tutarlı alt bilgi ayarları uygulamak için IMasterSlide.getHeaderFooterManager yöntemini kullanın. IMasterSlideHeaderFooterManager yöntemlerinin yayılımı, master ve ona bağlı düzen slaytları ile normal slaytlar üzerinde çalışır; yalnızca tek bir normal slaytı hedeflemez.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterSlideHeaderFooterManager headerFooterManager = presentation.getMasters().get_Item(0).getHeaderFooterManager();
    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);
} finally {
    presentation.dispose();
}

SSS

Master Slayt ile Düzen Slaytı Arasındaki Fark Nedir?

Bir master slayt, sunumun temasını ve ortak biçimlendirmesini tanımlar. Bir düzen slaytı, bir mastera aittir ve yer tutucuların yeniden kullanılabilir bir düzenini 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. addClone yöntemiyle hedef koleksiyona bir kopya ekleyin. Sunumlar arasında kopyalama yaparken, kaynak düzenin kullandığı yazı tiplerini, temaları, resimleri ve diğer kaynakları da doğrulayın.

Zaten Kullanımda Olan Bir Düzeni Değiştirdiğimde Ne Olur?

Bağlı slaytlar, yerel olarak etkilenen biçimlendirmeyi veya nesneleri geçersiz kılmadıkça düzen değişikliklerini miras alır. Bu nedenle yer tutucu geometrisi ve miras alınan stil, birçok slaytta aynı anda değişebilir. Düzeni düzenlemeden ö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 hatası verir. Önce bağlı slaytları yeniden atayın veya yalnızca referans edilmeyen düzenleri kaldırmak için removeUnusedLayoutSlides yöntemini kullanın.