C++'ta Sunumları Verimli Bir Şekilde Birleştirin

Genel Bakış

Aspose.Slides, bir sunumdan diğerine slayt klonlayarak sunumları birleştirmenizi sağlar. Bu makale, tüm sunumları veya seçili slaytları nasıl birleştirileceğini, birleştirme sırasında slayt ana sayfası veya belirli bir düzenin nasıl kullanılacağını, farklı slayt boyutlarına sahip sunumların nasıl ele alınacağını ve birleştirilen slaytların bir sunum bölümüne nasıl ekleneceğini açıklar. Ayrıca birleştirilen içerikle ilgili pratik notları, konuşmacı notaları, yorumlar, şifre korumalı kaynak dosyalar ve iş parçacığı kullanımını kapsar.

Sunum Birleştirme

Bir sunumu diğerine birleştirdiğinizde, slaytlarını tek bir sunumda birleştirerek bir dosya elde etmiş olursunuz.

Ne Birleştirilebilir

Aspose.Slides ile şunları birleştirebilirsiniz

  • tüm sunumları. Sunumlardan tüm slaytlar tek bir sunumda birleştirilir
  • belirli slaytları. Seçilen slaytlar tek bir sunumda birleştirilir
  • aynı formatta (PPT’den PPT’ye, PPTX’ten PPTX’e vb.) ve farklı formatlarda (PPT’den PPTX’e, PPTX’ten ODP’ye vb.) sunumları birbirine birleştirebilirsiniz.

Birleştirme Seçenekleri

Aşağıdaki seçenekleri uygulayabilirsiniz

  • çıktı sunumundaki her slayt benzersiz bir stile sahip olur
  • çıktı sunumundaki tüm slaytlar aynı stil kullanır.

Sunumları birleştirmek için Aspose.Slides, AddClone yöntemlerini (ISlideCollection arayüzünden) sağlar. AddClone yöntemlerinin birden fazla uygulaması, sunum birleştirme sürecinin parametrelerini belirler. Her Presentation nesnesinin bir Slides koleksiyonu vardır; bu nedenle slaytları birleştirmek istediğiniz sunum üzerinden AddClone metodunu çağırabilirsiniz.

AddClone yöntemi, kaynak slaydın bir kopyası olan bir ISlide nesnesi döndürür. Çıktı sunumundaki slaytlar, kaynak slaytlardan basitçe kopyalanmıştır. Bu nedenle, sonuç slaytlarda (örneğin stiller, biçimlendirme seçenekleri veya düzenler uygulayarak) değişiklik yapabilirsiniz; kaynak sunumların etkilenmesi konusunda endişelenmenize gerek yoktur.

Sunumları Birleştir

Aspose.Slides, slaytların düzenlerini ve stillerini koruyarak (varsayılan parametreler) slaytları birleştirmenizi sağlayan AddClone (ISlide) metodunu sunar.

Bu C++ kodu, sunumları nasıl birleştireceğinizi gösterir:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Sunumları Slayt Ana Sayfası ile Birleştir

Aspose.Slides, slayt ana sayfası sunum şablonunu uygulayarak slaytları birleştirmenizi sağlayan AddClone (ISlide, IMasterSlide, bool) metodunu sunar. Bu sayede, gerektiğinde çıktı sunumundaki slaytların stilini değiştirebilirsiniz.

Bu C++ kodu, açıklanan işlemi gösterir:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide, pres2->get_Masters()->idx_get(0), true);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Çıktı sunumundaki slaytların farklı bir slayt düzenine sahip olmasını istiyorsanız, birleştirirken AddClone (ISlide, ILayoutSlide) metodunu kullanın.

Belirli Slaytları Sunumlardan Birleştir

Birden fazla sunumdan belirli slaytları birleştirmek, özel slayt paketleri oluşturmak için faydalıdır. Aspose.Slides C++ yalnızca ihtiyacınız olan slaytları seçip içe aktarmanızı sağlar. API, orijinal slaytların biçimlendirmesini, düzenini ve tasarımını korur.

Şu C++ kodu yeni bir sunum oluşturur, iki diğer sunumdan başlık slaytlarını ekler ve sonucu bir dosyaya kaydeder:

SmartPtr<ISlide> GetTitleSlide(SmartPtr<IPresentation> presentation)
{
    for (auto&& slide : presentation->get_Slides())
    {
        if (slide->get_LayoutSlide()->get_LayoutType() == SlideLayoutType::Title)
        {
            return slide;
        }
    }
    return nullptr;
}
auto presentation = MakeObject<Presentation>();
auto presentation1 = MakeObject<Presentation>(u"presentation1.pptx");
auto presentation2 = MakeObject<Presentation>(u"presentation2.pptx");

presentation->get_Slides()->RemoveAt(0);

auto slide1 = GetTitleSlide(presentation1);

if (slide1 != nullptr)
    presentation->get_Slides()->AddClone(slide1);

auto slide2 = GetTitleSlide(presentation2);

if (slide2 != nullptr)
    presentation->get_Slides()->AddClone(slide2);

presentation->Save(u"combined.pptx", SaveFormat::Pptx);

presentation2->Dispose();
presentation1->Dispose();
presentation->Dispose();

Sunumları Slayt Düzeni ile Birleştir

Bu C++ kodu, slaytları birleştirirken tercih ettiğiniz slayt düzenini uygulayarak tek bir çıktı sunumu elde etmenizi gösterir:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Farklı Slayt Boyutlarına Sahip Sunumları Birleştir

Farklı slayt boyutlarına sahip 2 sunumu birleştirmek için, sunumlardan birinin boyutunu diğerinin boyutuna eşitleyecek şekilde yeniden boyutlandırmanız gerekir.

Bu örnek kod, açıklanan işlemi gösterir:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres1Size = pres1->get_SlideSize()->get_Size();

auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
pres2->get_SlideSize()->SetSize(pres1Size.get_Width(), pres1Size.get_Height(), SlideSizeScaleType::EnsureFit);

for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Slaytları Sunum Bölümüne Birleştir

Bu C++ kodu, belirli bir slaytı sunumdaki bir bölüme nasıl birleştireceğinizi gösterir:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (int32_t index = 0; index < pres2->get_Slides()->get_Count(); index++)
{
    auto slide = pres2->get_Slides()->idx_get(index);
    pres1->get_Slides()->AddClone(slide, pres1->get_Sections()->idx_get(0));
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Slayt, bölümün sonuna eklenir.

SSS

Birleştirme sırasında konuşmacı notları korunur mu?

Evet. Slaytları klonlarken, Aspose.Slides notlar, biçimlendirme ve animasyonlar dahil tüm slayt öğelerini taşıyarak kopyalar.

Yorumlar ve yorum yazarları aktarılır mı?

Yorumlar, slayt içeriğinin bir parçası olarak slaytla birlikte kopyalanır. Yorum yazar etiketleri, sonuç sunumdaki yorum nesneleri olarak korunur.

Kaynak sunum şifre korumalıysa ne olur?

LoadOptions::set_Password ile şifreyle açılmalıdır; yüklendikten sonra bu slaytlar, korumasız bir hedef dosyaya (veya korumalı bir dosyaya da) güvenle klonlanabilir.

Birleştirme işlemi ne kadar thread‑safe?

Aynı Presentation örneğini birden çok iş parçacığından kullanmayın. Önerilen kural “bir belge — bir iş parçacığı”; farklı dosyalar ayrı iş parçacıklarında paralel olarak işlenebilir.