ترکیب کارآمد ارائهها در C++
نمای کلی
Aspose.Slides به شما امکان میدهد ارائهها را با کلون کردن اسلایدها از یک ارائه به ارائه دیگر ادغام کنید. این مقاله توضیح میدهد چگونه میتوانید کل ارائهها یا اسلایدهای منتخب را ادغام کنید، در حین ادغام از یک اسلاید مستر یا طرحبندی خاص استفاده کنید، با ارائههای دارای اندازه اسلاید متفاوت برخورد کنید و اسلایدهای ادغامشده را به یک بخش از ارائه اضافه کنید. همچنین نکات عملی مربوط به محتویات ادغامشده شامل یادداشتهای سخنران، نظرات، فایلهای منبع محافظتشده با رمز عبور و استفاده از رشتهها را پوشش میدهد.
ادغام ارائهها
وقتی یک ارائه را به ارائه دیگر ادغام میکنید، عملاً اسلایدهای آنها را در یک ارائه ترکیب میکنید تا یک فایل به دست آورید.
اطلاعات
اکثریت برنامههای ارائه (PowerPoint یا OpenOffice) عملکردی برای ترکیب ارائهها به این شکل ندارند.
Aspose.Slides for C++، اما به شما امکان میدهد ارائهها را به روشهای مختلف ادغام کنید. میتوانید ارائهها را با تمام اشکال، سبکها، متنها، قالببندی، نظرات، انیمیشنها و غیره ادغام کنید بدون اینکه نگران از دست رفتن کیفیت یا دادهها باشید.
همچنین ببینید
چه چیزهایی میتوان ادغام کرد
با Aspose.Slides میتوانید
- کل ارائهها را ادغام کنید. تمام اسلایدهای ارائهها در یک ارائه جمع میشوند
- اسلایدهای خاصی را ادغام کنید. اسلایدهای انتخابشده در یک ارائه قرار میگیرند
- ارائهها را در یک قالب (PPT به PPT، PPTX به PPTX و غیره) و در قالبهای مختلف (PPT به PPTX، PPTX به ODP و غیره) به یکدیگر متصل کنید.
تذکر
علاوه بر ارائهها، Aspose.Slides به شما امکان میدهد سایر فایلها را نیز ادغام کنید:
- Images، مانند JPG to JPG یا PNG to PNG
- اسناد، مانند PDF to PDF یا HTML to HTML
- و دو فایل متفاوت مانند image to PDF یا JPG to PDF یا TIFF to PDF.
گزینههای ادغام
میتوانید گزینههایی اعمال کنید که تعیین میکند
- هر اسلاید در ارائه خروجی یک سبک منحصربهفرد داشته باشد
- یک سبک مشخص برای تمام اسلایدهای ارائه خروجی استفاده شود.
برای ادغام ارائهها، Aspose.Slides متدهای AddClone را (از رابط ISlideCollection) ارائه میدهد. چندین پیادهسازی از متدهای AddClone وجود دارد که پارامترهای فرآیند ادغام ارائه را تعریف میکند. هر شیء Presentation دارای مجموعهای به نام Slides است، بنابراین میتوانید یک متد AddClone را از ارائهای که میخواهید اسلایدها به آن اضافه شوند، فراخوانی کنید.
متد AddClone یک شیء ISlide را برمیگرداند که یک کلون از اسلاید منبع است. اسلایدهای موجود در ارائه خروجی به سادگی نسخهای از اسلایدهای منبع هستند. بنابراین میتوانید اسلایدهای حاصل را (مثلاً اعمال سبکها یا گزینههای قالببندی یا طرحها) بدون نگرانی از تأثیر بر ارائههای منبع، تغییر دهید.
ادغام ارائهها
Aspose.Slides متد AddClone (ISlide) را فراهم میکند که اجازه میدهد اسلایدها را ترکیب کنید در حالی که اسلایدها طرحبندی و سبکهای خود را حفظ میکنند (پارامترهای پیشفرض).
این کد C++ نشان میدهد چگونه ارائهها را ادغام کنید:
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);
ادغام ارائهها با یک اسلاید مستر
Aspose.Slides متد AddClone (ISlide, IMasterSlide, bool) را فراهم میکند که اجازه میدهد اسلایدها را ترکیب کنید در حالی که یک الگو (تم) اسلاید مستر اعمال میشود. به این ترتیب، در صورت نیاز میتوانید سبک اسلایدهای ارائه خروجی را تغییر دهید.
این کد C++ عمل شرحدادهشده را نشان میدهد:
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);
تذکر
طرحبندی اسلاید برای اسلاید مستر بهصورت خودکار تعیین میشود. وقتی طرحبندی مناسب پیدا نشود، اگر پارامتر بولیallowCloneMissingLayout متد AddClone برابر true باشد، از طرحبندی اسلاید منبع استفاده میشود. در غیر این صورت، استثنای PptxEditException پرتاب خواهد شد.
اگر میخواهید اسلایدهای ارائه خروجی دارای طرحبندی متفاوتی باشند، بهجای آن هنگام ادغام از متد AddClone (ISlide, ILayoutSlide) استفاده کنید.
ادغام اسلایدهای خاص از ارائهها
ادغام اسلایدهای خاص از چندین ارائه برای ایجاد مجموعه اسلایدهای سفارشی مفید است. Aspose.Slides C++ به شما امکان میدهد فقط اسلایدهایی که نیاز دارید را انتخاب و وارد کنید. API قالببندی، طرحبندی و طراحی اسلایدهای اصلی را حفظ میکند.
کد C++ زیر یک ارائه جدید ایجاد میکند، اسلایدهای عنوان را از دو ارائه دیگر اضافه میکند و نتیجه را در فایلی ذخیره مینماید:
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();
ادغام ارائهها با یک طرحبندی اسلاید
این کد C++ نشان میدهد چگونه اسلایدها را از ارائهها ترکیب کنید در حالی که طرحبندی دلخواه خود را برای آنها اعمال کنید تا یک ارائه خروجی بهدست آورید:
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);
ادغام ارائهها با اندازههای اسلاید متفاوت
تذکر
شما نمیتوانید ارائهها با اندازههای اسلاید متفاوت را ادغام کنید.برای ادغام 2 ارائه با اندازه اسلاید متفاوت، باید یکی از ارائهها را تغییر اندازه دهید تا اندازه آن با ارائه دیگر برابر شود.
این نمونه کد عملیات شرحدادهشده را نشان میدهد:
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);
ادغام اسلایدها به یک بخش از ارائه
این کد C++ نشان میدهد چگونه یک اسلاید خاص را به یک بخش در ارائه ادغام کنید:
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);
اسلاید در انتهای بخش اضافه میشود.
نکته
Aspose یک برنامه وب FREE Collage را ارائه میدهد (https://products.aspose.app/slides/fa/collage). با استفاده از این سرویس آنلاین میتوانید JPG to JPG یا PNG به PNG را ادغام کنید، شبکههای عکس بسازید و غیره.سوالات متداول
آیا یادداشتهای سخنران هنگام ادغام حفظ میشوند؟
بله. هنگام کلون کردن اسلایدها، Aspose.Slides همه عناصر اسلاید، از جمله یادداشتها، قالببندی و انیمیشنها را منتقل میکند.
آیا نظرات و نویسندگان آنها منتقل میشوند؟
نظرات، به عنوان بخشی از محتوای اسلاید، همراه با اسلاید کپی میشوند. برچسبهای نویسنده نظرات بهعنوان اشیاء نظر در ارائه حاصل حفظ میشوند.
اگر ارائه منبع با رمز عبور محافظت شده باشد چه میشود؟
باید با استفاده از گزینههای بارگذاری و متد LoadOptions::set_Password باز شود (لینک: /slides/fa/cpp/password-protected-presentation/). پس از بارگذاری، آن اسلایدها میتوانند بهصورت ایمن به یک فایل هدف بدون محافظت (یا حتی محافظتشده) کلون شوند.
عملیات ادغام تا چه اندازه ایمن نسبت به رشتهها است؟
از همان شیء Presentation در چندین رشته استفاده نکنید. قانون پیشنهادی این است: «یک سند — یک رشته»؛ فایلهای مختلف میتوانند بهصورت موازی در رشتههای جداگانه پردازش شوند.