Menggabungkan Presentasi secara Efisien di C++
Ikhtisar
Aspose.Slides memungkinkan Anda menggabungkan presentasi dengan mengkloning slide dari satu presentasi ke presentasi lain. Artikel ini menjelaskan cara menggabungkan seluruh presentasi atau slide yang dipilih, menggunakan slide master atau tata letak tertentu selama penggabungan, menangani presentasi dengan ukuran slide yang berbeda, dan menambahkan slide yang digabung ke dalam bagian presentasi. Artikel ini juga mencakup catatan praktis terkait konten yang digabung, termasuk catatan pembicara, komentar, file sumber yang dilindungi kata sandi, dan penggunaan thread.
Penggabungan Presentasi
Saat Anda menggabungkan satu presentasi ke presentasi lain, Anda secara efektif menggabungkan slide-slide mereka dalam satu presentasi untuk memperoleh satu file.
Info
Sebagian besar program presentasi (PowerPoint atau OpenOffice) tidak memiliki fungsi yang memungkinkan pengguna menggabungkan presentasi dengan cara tersebut.
Aspose.Slides untuk C++ , bagaimanapun, memungkinkan Anda menggabungkan presentasi dengan cara yang berbeda. Anda dapat menggabungkan presentasi dengan semua bentuk, gaya, teks, pemformatan, komentar, animasi, dll tanpa harus khawatir tentang kehilangan kualitas atau data.
Lihat juga
Apa yang Dapat Digabungkan
Dengan Aspose.Slides, Anda dapat menggabungkan
- seluruh presentasi. Semua slide dari presentasi tersebut berakhir dalam satu presentasi
- slide tertentu. Slide yang dipilih berakhir dalam satu presentasi
- presentasi dalam satu format (PPT ke PPT, PPTX ke PPTX, dll) dan dalam format yang berbeda (PPT ke PPTX, PPTX ke ODP, dll) satu sama lain.
Note
Selain presentasi, Aspose.Slides memungkinkan Anda menggabungkan file lain:
- Gambar, seperti JPG ke JPG atau PNG ke PNG
- Dokumen, seperti PDF ke PDF atau HTML ke HTML
- Dan dua file berbeda seperti gambar ke PDF atau JPG ke PDF atau TIFF ke PDF.
Opsi Penggabungan
Anda dapat menerapkan opsi yang menentukan apakah
- setiap slide dalam presentasi output mempertahankan gaya unik
- gaya tertentu digunakan untuk semua slide dalam presentasi output.
Untuk menggabungkan presentasi, Aspose.Slides menyediakan metode AddClone (dari antarmuka ISlideCollection). Ada beberapa implementasi metode AddClone yang menentukan parameter proses penggabungan presentasi. Setiap objek Presentation memiliki koleksi Slides, sehingga Anda dapat memanggil metode AddClone dari presentasi yang ingin Anda gabungkan slide.
Metode AddClone mengembalikan objek ISlide, yang merupakan klon dari slide sumber. Slide dalam presentasi output hanyalah salinan slide dari sumber. Oleh karena itu, Anda dapat mengubah slide hasil (misalnya, menerapkan gaya, opsi pemformatan, atau tata letak) tanpa khawatir presentasi sumber terpengaruh.
Gabungkan Presentasi
Aspose.Slides menyediakan metode AddClone (ISlide) yang memungkinkan Anda menggabungkan slide sementara slide mempertahankan tata letak dan gaya mereka (parameter default).
Kode C++ ini menunjukkan cara menggabungkan presentasi:
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);
Gabungkan Presentasi dengan Slide Master
Aspose.Slides menyediakan metode AddClone (ISlide, IMasterSlide, bool) yang memungkinkan Anda menggabungkan slide sambil menerapkan templat slide master. Dengan cara ini, bila diperlukan, Anda dapat mengubah gaya slide dalam presentasi output.
Kode C++ ini mendemonstrasikan operasi yang dijelaskan:
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);
Note
Tata letak slide untuk slide master ditentukan secara otomatis. Ketika tata letak yang tepat tidak dapat ditentukan, jika parameter booleanallowCloneMissingLayout pada metode AddClone disetel ke true, tata letak slide sumber yang akan digunakan. Jika tidak, PptxEditException akan dilemparkan.
Jika Anda menginginkan slide dalam presentasi output memiliki tata letak slide yang berbeda, gunakan metode AddClone (ISlide, ILayoutSlide) sebagai gantinya saat menggabungkan.
Gabungkan Slide Tertentu dari Presentasi
Menggabungkan slide tertentu dari beberapa presentasi berguna untuk membuat set slide khusus. Aspose.Slides C++ memungkinkan Anda memilih dan mengimpor hanya slide yang diperlukan. API mempertahankan pemformatan, tata letak, dan desain slide asli.
Kode C++ berikut membuat presentasi baru, menambahkan slide judul dari dua presentasi lain, dan menyimpan hasilnya ke file:
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();
Gabungkan Presentasi dengan Tata Letak Slide
Kode C++ ini menunjukkan cara menggabungkan slide dari presentasi sambil menerapkan tata letak slide pilihan Anda sehingga menghasilkan satu presentasi output:
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);
Gabungkan Presentasi dengan Ukuran Slide Berbeda
Note
Anda tidak dapat menggabungkan presentasi dengan ukuran slide yang berbeda.Untuk menggabungkan 2 presentasi dengan ukuran slide yang berbeda, Anda harus mengubah ukuran salah satu presentasi sehingga ukurannya cocok dengan presentasi lainnya.
Contoh kode ini menunjukkan operasi yang dijelaskan:
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);
Gabungkan Slide ke Bagian Presentasi
Kode C++ ini menunjukkan cara menggabungkan slide tertentu ke sebuah bagian dalam presentasi:
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);
Slide ditambahkan di akhir bagian.
Tip
Aspose menyediakan aplikasi web Collage GRATIS. Dengan layanan online ini, Anda dapat menggabungkan gambar JPG ke JPG atau PNG ke PNG, membuat grid foto, dan sebagainya.FAQ
Apakah catatan pembicara dipertahankan selama penggabungan?
Ya. Saat mengkloning slide, Aspose.Slides membawa semua elemen slide, termasuk catatan, pemformatan, dan animasi.
Apakah komentar dan penulisnya dipindahkan?
Komentar, sebagai bagian dari konten slide, disalin bersama slide. Label penulis komentar dipertahankan sebagai objek komentar dalam presentasi yang dihasilkan.
Bagaimana jika presentasi sumber dilindungi kata sandi?
Presentasi harus dibuka dengan kata sandi melalui LoadOptions::set_Password; setelah dimuat, slide tersebut dapat dengan aman diklon ke file target yang tidak dilindungi (atau juga yang dilindungi).
Seberapa thread-safe operasi penggabungan?
Jangan gunakan instance Presentation yang sama dari beberapa thread. Aturan yang disarankan adalah “satu dokumen — satu thread”; file yang berbeda dapat diproses secara paralel di thread terpisah.