ترکیب کارآمد ارائه‌ها در C++

نمای کلی

Aspose.Slides به شما امکان می‌دهد ارائه‌ها را با کلون کردن اسلایدها از یک ارائه به ارائه دیگر ادغام کنید. این مقاله توضیح می‌دهد چگونه می‌توانید کل ارائه‌ها یا اسلایدهای منتخب را ادغام کنید، در حین ادغام از یک اسلاید مستر یا طرح‌بندی خاص استفاده کنید، با ارائه‌های دارای اندازه اسلاید متفاوت برخورد کنید و اسلایدهای ادغام‌شده را به یک بخش از ارائه اضافه کنید. همچنین نکات عملی مربوط به محتویات ادغام‌شده شامل یادداشت‌های سخنران، نظرات، فایل‌های منبع محافظت‌شده با رمز عبور و استفاده از رشته‌ها را پوشش می‌دهد.

ادغام ارائه‌ها

وقتی یک ارائه را به ارائه دیگر ادغام می‌کنید، عملاً اسلایدهای آن‌ها را در یک ارائه ترکیب می‌کنید تا یک فایل به دست آورید.

چه چیزهایی می‌توان ادغام کرد

با Aspose.Slides می‌توانید

  • کل ارائه‌ها را ادغام کنید. تمام اسلایدهای ارائه‌ها در یک ارائه جمع می‌شوند
  • اسلایدهای خاصی را ادغام کنید. اسلایدهای انتخاب‌شده در یک ارائه قرار می‌گیرند
  • ارائه‌ها را در یک قالب (PPT به PPT، PPTX به PPTX و غیره) و در قالب‌های مختلف (PPT به PPTX، PPTX به ODP و غیره) به یکدیگر متصل کنید.

گزینه‌های ادغام

می‌توانید گزینه‌هایی اعمال کنید که تعیین می‌کند

  • هر اسلاید در ارائه خروجی یک سبک منحصربه‌فرد داشته باشد
  • یک سبک مشخص برای تمام اسلایدهای ارائه خروجی استفاده شود.

برای ادغام ارائه‌ها، 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);

اگر می‌خواهید اسلایدهای ارائه خروجی دارای طرح‌بندی متفاوتی باشند، به‌جای آن هنگام ادغام از متد 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.Slides همه عناصر اسلاید، از جمله یادداشت‌ها، قالب‌بندی و انیمیشن‌ها را منتقل می‌کند.

آیا نظرات و نویسندگان آن‌ها منتقل می‌شوند؟

نظرات، به عنوان بخشی از محتوای اسلاید، همراه با اسلاید کپی می‌شوند. برچسب‌های نویسنده نظرات به‌عنوان اشیاء نظر در ارائه حاصل حفظ می‌شوند.

اگر ارائه منبع با رمز عبور محافظت شده باشد چه می‌شود؟

باید با استفاده از گزینه‌های بارگذاری و متد LoadOptions::set_Password باز شود (لینک: /slides/fa/cpp/password-protected-presentation/). پس از بارگذاری، آن اسلایدها می‌توانند به‌صورت ایمن به یک فایل هدف بدون محافظت (یا حتی محافظت‌شده) کلون شوند.

عملیات ادغام تا چه اندازه ایمن نسبت به رشته‌ها است؟

از همان شیء Presentation در چندین رشته استفاده نکنید. قانون پیشنهادی این است: «یک سند — یک رشته»؛ فایل‌های مختلف می‌توانند به‌صورت موازی در رشته‌های جداگانه پردازش شوند.