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.
Bilgi
Çoğu sunum programı (PowerPoint veya OpenOffice) kullanıcıların sunumları bu şekilde birleştirmesine izin veren işlevlere sahip değildir.
Aspose.Slides for C++ ise sunumları farklı şekillerde birleştirmenizi sağlar. Tüm şekilleri, stilleri, metinleri, biçimlendirmeleri, yorumları, animasyonları vb. içeriklerini kayıp yaşamadan birleştirebilirsiniz.
Ayrıca Bakınız
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.
Not
Sunumların yanı sıra, Aspose.Slides başka dosyaları da birleştirmenize izin verir:
- Görseller, örneğin JPG’den JPG’ye veya PNG’den PNG’ye
- Belgeler, örneğin PDF’den PDF’ye veya HTML’den HTML’ye
- Ve görüntü ile PDF gibi iki farklı dosya, örneğin görüntüden PDF’ye veya JPG’den PDF’ye veya TIFF’den PDF’ye.
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);
Not
Slayt ana sayfasının slayt düzeni otomatik olarak belirlenir. Uygun bir düzen belirlenemediğinde,AddClone metodunun allowCloneMissingLayout Boolean parametresi true olarak ayarlanmışsa, kaynak slaydın düzeni kullanılır. Aksi takdirde, PptxEditException istisnası fırlatılır.
Çı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
Not
Farklı slayt boyutlarına sahip sunumları birleştiremezsiniz.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.
İpucu
Aspose, bir ÜCRETSİZ Collage web uygulaması sunar. Bu çevrimiçi hizmeti kullanarak JPG’den JPG’ye veya PNG’den PNG’ye görüntüleri birleştirebilir, fotoğraf ızgaraları oluşturabilir ve benzeri işlemler yapabilirsiniz.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.