C++ में प्रस्तुतियों को कुशलतापूर्वक मर्ज करें

परिचय

Aspose.Slides आपको एक प्रस्तुतीकरण से दूसरी में स्लाइड को क्लोन करके प्रस्तुतियों को मर्ज करने की सुविधा देता है। यह लेख पूरी प्रस्तुतियों या चयनित स्लाइडों को मर्ज करने, मर्ज के दौरान स्लाइड मास्टर या विशिष्ट लेआउट का उपयोग करने, विभिन्न स्लाइड आकार वाली प्रस्तुतियों को संभालने, और मर्ज की गई स्लाइडों को प्रस्तुतीकरण सेक्शन में जोड़ने के तरीकों को समझाता है। यह मर्ज किए गए कंटेंट से संबंधित व्यावहारिक नोट्स को भी कवर करता है, जिसमें स्पीकर नोट्स, टिप्पणियाँ, पासवर्ड-प्रोटेक्टेड स्रोत फ़ाइलें, और थ्रेड उपयोग शामिल हैं।

Presentation Merging

जब आप एक प्रस्तुतीकरण को दूसरे में मर्ज करते हैं, तो आप प्रभावी रूप से उनकी स्लाइडों को एक ही प्रस्तुतीकरण में संयोजित करके एक फ़ाइल बनाते हैं।

What Can Be Merged

Aspose.Slides के साथ आप मर्ज कर सकते हैं

  • पूरी प्रस्तुतियाँ। सभी स्लाइडें एक ही प्रस्तुतीकरण में आती हैं
  • विशिष्ट स्लाइडें। चयनित स्लाइडें एक ही प्रस्तुतीकरण में आती हैं
  • एक ही फ़ॉर्मेट (PPT से PPT, PPTX से PPTX, आदि) या विभिन्न फ़ॉर्मेट (PPT से PPTX, PPTX से ODP, आदि) में प्रस्तुतियों को एक-दूसरे में मर्ज कर सकते हैं।

Merging Options

आप ऐसे विकल्प लागू कर सकते हैं जो निर्धारित करते हैं कि

  • आउटपुट प्रस्तुतीकरण की प्रत्येक स्लाइड एक अलग शैली रखे
  • सभी स्लाइडों के लिए एक विशिष्ट शैली उपयोग की जाए।

प्रस्तुतीकरण मर्ज करने के लिए, Aspose.Slides AddClone मेथड्स प्रदान करता है (जो ISlideCollection इंटरफ़ेस का हिस्सा हैं)। AddClone मेथड्स की कई इम्प्लीमेंटेशन हैं जो प्रस्तुतीकरण मर्ज प्रक्रिया के पैरामीटर निर्धारित करती हैं। प्रत्येक Presentation ऑब्जेक्ट के पास एक Slides कलेक्शन होता है, इसलिए आप उस प्रस्तुतीकरण से AddClone मेथड को कॉल कर सकते हैं जिसमें आप स्लाइडें जोड़ना चाहते हैं।

AddClone मेथड एक ISlide ऑब्जेक्ट लौटाता है, जो स्रोत स्लाइड की क्लोन होती है। आउटपुट प्रस्तुतीकरण की स्लाइडें केवल स्रोत की स्लाइडों की प्रतिलिपि होती हैं। इसलिए, आप परिणामी स्लाइडों में परिवर्तन (जैसे शैली या फ़ॉर्मेटिंग विकल्प या लेआउट लागू करना) कर सकते हैं बिना स्रोत प्रस्तुतियों पर प्रभाव डाले।

Merge Presentations

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);

Merge Presentations with a Slide Master

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) मेथड का उपयोग करें।

Merge Specific Slides from Presentations

कई प्रस्तुतियों से विशिष्ट स्लाइडें मर्ज करना कस्टम स्लाइड डेक बनाने में उपयोगी है। 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();

Merge Presentations with a Slide Layout

यह 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);

Merge Presentations with Different Slide Sizes

दो अलग स्लाइड आकार वाली प्रस्तुतियों को मर्ज करने के लिए, आपको एक प्रस्तुतीकरण का आकार दूसरे के आकार से मेल खाने के लिए बदलना होगा।

यह उदाहरण कोड वर्णित ऑपरेशन को दर्शाता है:

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);

Merge Slides to a Presentation Section

यह 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);

यह स्लाइड सेक्शन के अंत में जोड़ी जाती है।

FAQ

क्या मर्ज के दौरान स्पीकर नोट्स संरक्षित रहते हैं?

हाँ। स्लाइडें क्लोन करने पर Aspose.Slides सभी स्लाइड तत्वों को, जिनमें नोट्स, फ़ॉर्मेटिंग और एनीमेशन शामिल हैं, साथ ले जाता है।

क्या टिप्पणियों और उनके लेखकों को स्थानांतरित किया जाता है?

टिप्पणियाँ, जो स्लाइड कंटेंट का हिस्सा हैं, स्लाइड के साथ कॉपी हो जाती हैं। टिप्पणी लेखक लेबल परिणामस्वरूप प्रस्तुतीकरण में टिप्पणी ऑब्जेक्ट के रूप में संरक्षित रहते हैं।

यदि स्रोत प्रस्तुतीकरण पासवर्ड-प्रोटेक्टेड है तो क्या होगा?

इसे पासवर्ड के साथ खोलना आवश्यक है, जिसे आप LoadOptions::set_Password द्वारा कर सकते हैं; लोड करने के बाद, उन स्लाइडों को सुरक्षित रूप से अनप्रोटेक्टेड लक्ष्य फ़ाइल (या प्रोटेक्टेड फ़ाइल) में क्लोन किया जा सकता है।

मर्ज ऑपरेशन कितनी थ्रेड-सेफ़ है?

एक ही Presentation इंस्टेंस को multiple threads से उपयोग न करें। अनुशंसित नियम है “एक दस्तावेज़ — एक थ्रेड”; विभिन्न फ़ाइलों को अलग-अलग थ्रेडों में समानांतर रूप से प्रोसेस किया जा सकता है।