PHP में प्रेजेंटेशन स्लाइड्स क्लोन करें

परिचय

क्लोनिंग वह प्रक्रिया है जिसमें किसी वस्तु की सटीक प्रतिलिपि या नक्कल बनाई जाती है। Aspose.Slides for PHP via Java यह भी संभव बनाता है कि किसी भी स्लाइड की कॉपी या क्लोन बनाया जाए और फिर उस क्लोन की स्लाइड को वर्तमान या किसी अन्य खुले प्रेजेंटेशन में सम्मिलित किया जाए। स्लाइड क्लोनिंग की प्रक्रिया एक नई स्लाइड बनाती है जिसे डेवलपर्स मूल स्लाइड को बदले बिना संशोधित कर सकते हैं। स्लाइड को क्लोन करने के कई संभावित तरीके हैं:

  • प्रेजेंटेशन के भीतर अंत में क्लोन करें।
  • प्रेजेंटेशन के भीतर किसी अन्य स्थान पर क्लोन करें।
  • अन्य प्रेजेंटेशन में अंत में क्लोन करें।
  • अन्य प्रेजेंटेशन में किसी अन्य स्थान पर क्लोन करें।
  • अन्य प्रेजेंटेशन में विशिष्ट स्थान पर क्लोन करें।

Aspose.Slides for PHP via Java में, (एक संग्रह [Slide] वस्तुओं का) जो [Presentation] वस्तु द्वारा उजागर किया जाता है, [addClone] और [insertClone] विधियों को प्रदान करता है ताकि उपरोक्त प्रकार के स्लाइड क्लोनिंग को किया जा सके।

प्रेजेंटेशन के अंत में स्लाइड को क्लोन करें

यदि आप एक स्लाइड को क्लोन करना चाहते हैं और फिर उसे समान प्रेजेंटेशन फ़ाइल में मौजूदा स्लाइड्स के अंत में उपयोग करना चाहते हैं, तो नीचे सूचीबद्ध चरणों के अनुसार [addClone] मेथड का उपयोग करें:

  1. एक [Presentation] क्लास का इंस्टेंस बनाएँ।
  2. [Presentation] वस्तु द्वारा उजागर स्लाइड संग्रह को संदर्भित करके [SlideCollection] ऑब्जेक्ट प्राप्त करें।
  3. [SlideCollection] ऑब्जेक्ट द्वारा उजागर [addClone] मेथड को कॉल करें और क्लोन की जाने वाली स्लाइड को [addClone] मेथड के पैरामीटर के रूप में पास करें।
  4. संशोधित प्रेजेंटेशन फ़ाइल को लिखें।

नीचे दिया गया उदाहरण में, हमने एक स्लाइड (जो प्रेजेंटेशन की पहली स्थिति – शून्य इंडेक्स – पर स्थित थी) को प्रेजेंटेशन के अंत तक क्लोन किया है।

  # एक प्रस्तुति फ़ाइल का प्रतिनिधित्व करने वाली Presentation क्लास को इंस्टैंसिएट करें
  $pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
  try {
    # उसी प्रस्तुति में स्लाइड्स के संग्रह के अंत में इच्छित स्लाइड को क्लोन करें
    $slds = $pres->getSlides();
    $slds->addClone($pres->getSlides()->get_Item(0));
    # संशोधित प्रस्तुति को डिस्क पर लिखें
    $pres->save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

प्रेजेंटेशन के भीतर किसी अन्य स्थान पर स्लाइड को क्लोन करें

यदि आप एक स्लाइड को क्लोन करना चाहते हैं और फिर उसे समान प्रेजेंटेशन फ़ाइल में लेकिन किसी अलग स्थान पर उपयोग करना चाहते हैं, तो [insertClone] मेथड का उपयोग करें:

  1. एक [Presentation] क्लास का इंस्टेंस बनाएँ।
  2. [Presentation] वस्तु द्वारा उजागर [Slides] संग्रह को संदर्भित करके [SlideCollection] ऑब्जेक्ट प्राप्त करें।
  3. [SlideCollection] ऑब्जेक्ट द्वारा उजागर [insertClone] मेथड को कॉल करें और क्लोन की जाने वाली स्लाइड को नए स्थान के इंडेक्स के साथ पैरामीटर के रूप में पास करें।
  4. संशोधित प्रेजेंटेशन को PPTX फ़ाइल के रूप में लिखें।

नीचे दिया गया उदाहरण में, हमने एक स्लाइड (जो प्रेजेंटेशन के शून्य इंडेक्स – स्थिति 1 – पर स्थित थी) को इंडेक्स 1 – स्थिति 2 – पर क्लोन किया है।

  # एक प्रस्तुति फ़ाइल का प्रतिनिधित्व करने वाली Presentation क्लास को इंस्टैंसिएट करें
  $pres = new Presentation("CloneWithInSamePresentation.pptx");
  try {
    # उसी प्रस्तुति में स्लाइड्स के संग्रह के अंत में इच्छित स्लाइड को क्लोन करें
    $slds = $pres->getSlides();
    # उसी प्रस्तुति में निर्दिष्ट इंडेक्स पर इच्छित स्लाइड को क्लोन करें
    $slds->insertClone(2, $pres->getSlides()->get_Item(1));
    # संशोधित प्रस्तुति को डिस्क पर लिखें
    $pres->save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

अन्य प्रेजेंटेशन के अंत में स्लाइड को क्लोन करें

यदि आपको एक प्रेजेंटेशन से स्लाइड को क्लोन करके उसे किसी अन्य प्रेजेंटेशन फ़ाइल के अंत में जोड़ना है:

  1. स्रोत प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  2. लक्ष्य प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  3. लक्ष्य प्रेजेंटेशन के [Presentation] वस्तु द्वारा उजागर [Slides] संग्रह को संदर्भित करके [SlideCollection] ऑब्जेक्ट प्राप्त करें।
  4. [SlideCollection] ऑब्जेक्ट द्वारा उजागर [addClone] मेथड को कॉल करें और स्रोत प्रेजेंटेशन से स्लाइड को पैरामीटर के रूप में पास करें।
  5. संशोधित लक्ष्य प्रेजेंटेशन फ़ाइल को लिखें।

नीचे दिया गया उदाहरण में, हमने स्रोत प्रेजेंटेशन के पहले इंडेक्स से स्लाइड को लक्ष्य प्रेजेंटेशन के अंत में क्लोन किया है।

  # सोर्स प्रस्तुति फ़ाइल को लोड करने के लिए Presentation क्लास को इंस्टैंसिएट करें
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # डेस्टिनेशन PPTX (जहाँ स्लाइड को क्लोन किया जाएगा) के लिए Presentation क्लास को इंस्टैंसिएट करें
    $destPres = new Presentation();
    try {
      # सोर्स प्रस्तुति से इच्छित स्लाइड को डेस्टिनेशन प्रस्तुति के स्लाइड संग्रह के अंत में क्लोन करें
      $slds = $destPres->getSlides();
      $slds->addClone($srcPres->getSlides()->get_Item(0));
      # डेस्टिनेशन प्रस्तुति को डिस्क पर लिखें
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

अन्य प्रेजेंटेशन में किसी अन्य स्थान पर स्लाइड को क्लोन करें

यदि आपको एक प्रेजेंटेशन से स्लाइड को क्लोन करके उसे किसी अन्य प्रेजेंटेशन फ़ाइल में विशिष्ट स्थान पर उपयोग करना है:

  1. स्रोत प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  2. लक्ष्य प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  3. लक्ष्य प्रेजेंटेशन के [Presentation] वस्तु द्वारा उजागर Slides संग्रह को संदर्भित करके [SlideCollection] क्लास प्राप्त करें।
  4. [SlideCollection] ऑब्जेक्ट द्वारा उजागर [insertClone] मेथड को कॉल करें और स्रोत प्रेजेंटेशन से स्लाइड को इच्छित स्थान के साथ पैरामीटर के रूप में पास करें।
  5. संशोधित लक्ष्य प्रेजेंटेशन फ़ाइल को लिखें।

नीचे दिया गया उदाहरण में, हमने स्रोत प्रेजेंटेशन के शून्य इंडेक्स से स्लाइड को लक्ष्य प्रेजेंटेशन के इंडेक्स 1 (स्थान 2) पर क्लोन किया है।

  # स्रोत प्रस्तुति फ़ाइल को लोड करने के लिए Presentation क्लास को इंस्टैंसिएट करें
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # डेस्टिनेशन PPTX (जहाँ स्लाइड को क्लोन किया जाएगा) के लिए Presentation क्लास को इंस्टैंसिएट करें
    $destPres = new Presentation();
    try {
      # स्रोत प्रस्तुति से इच्छित स्लाइड को डेस्टिनेशन प्रस्तुति के स्लाइड संग्रह के अंत में क्लोन करें
      $slds = $destPres->getSlides();
      $slds->insertClone(2, $srcPres->getSlides()->get_Item(0));
      # डेस्टिनेशन प्रस्तुति को डिस्क पर लिखें
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

अन्य प्रेजेंटेशन में विशिष्ट स्थान पर स्लाइड को क्लोन करें

यदि आपको एक प्रेजेंटेशन से स्लाइड को उसके मास्टर स्लाइड के साथ क्लोन करके किसी अन्य प्रेजेंटेशन में उपयोग करना है, तो पहले स्रोत प्रेजेंटेशन से इच्छित मास्टर स्लाइड को लक्ष्य प्रेजेंटेशन में क्लोन करना होगा। फिर उस मास्टर स्लाइड का उपयोग करके स्लाइड को क्लोन किया जाता है। [addClone(Slide, MasterSlide, boolean)] मेथड को लक्ष्य प्रेजेंटेशन की मास्टर स्लाइड की आवश्यकता होती है, स्रोत की नहीं। नीचे दिए गए चरणों का पालन करें:

  1. स्रोत प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  2. लक्ष्य प्रेजेंटेशन को शामिल करने वाली [Presentation] क्लास का एक इंस्टेंस बनाएँ।
  3. क्लोन की जाने वाली स्लाइड को उसके मास्टर स्लाइड के साथ एक्सेस करें।
  4. लक्ष्य प्रेजेंटेशन के [Presentation] वस्तु द्वारा उजागर Masters संग्रह को संदर्भित करके [MasterSlideCollection] क्लास का इंस्टेंस बनाएँ।
  5. [MasterSlideCollection] ऑब्जेक्ट द्वारा उजागर [addClone] मेथड को कॉल करें और स्रोत PPTX से क्लोन करने हेतु मास्टर को पैरामीटर के रूप में पास करें।
  6. लक्ष्य प्रेजेंटेशन के [Presentation] वस्तु द्वारा उजागर Slides संग्रह को संदर्भित करके [SlideCollection] क्लास का इंस्टेंस बनायें।
  7. [SlideCollection] ऑब्जेक्ट द्वारा उजागर [addClone] मेथड को कॉल करें और स्रोत प्रेजेंटेशन से स्लाइड को क्लोन करने हेतु तथा मास्टर स्लाइड को पैरामीटर के रूप में पास करें।
  8. संशोधित लक्ष्य प्रेजेंटेशन फ़ाइल को लिखें।

नीचे दिया गया उदाहरण में, हमने स्रोत प्रेजेंटेशन के शून्य इंडेक्स से एक मास्टर के साथ स्लाइड को स्रोत स्लाइड के मास्टर का उपयोग करके लक्ष्य प्रेजेंटेशन के अंत में क्लोन किया है।

  # स्रोत प्रस्तुति फ़ाइल को लोड करने के लिए Presentation क्लास को इंस्टैंसिएट करें
  $srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
  try {
    # डेस्टिनेशन प्रस्तुति (जहाँ स्लाइड को क्लोन किया जाएगा) के लिए Presentation क्लास को इंस्टैंसिएट करें
    $destPres = new Presentation();
    try {
      # स्रोत प्रस्तुति में स्लाइड्स के संग्रह से ISlide को इंस्टैंसिएट करें साथ ही
      # मास्टर स्लाइड
      $SourceSlide = $srcPres->getSlides()->get_Item(0);
      $SourceMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # स्रोत प्रस्तुति से इच्छित मास्टर स्लाइड को डेस्टिनेशन प्रस्तुति के मास्टर संग्रह में क्लोन करें
      # डेस्टिनेशन प्रस्तुति
      $masters = $destPres->getMasters();
      $DestMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # स्रोत प्रस्तुति से इच्छित मास्टर स्लाइड को डेस्टिनेशन प्रस्तुति के मास्टर संग्रह में क्लोन करें
      # डेस्टिनेशन प्रस्तुति
      $iSlide = $masters->addClone($SourceMaster);
      # स्रोत प्रस्तुति से इच्छित स्लाइड को इच्छित मास्टर के साथ डेस्टिनेशन प्रस्तुति के स्लाइड संग्रह के अंत में क्लोन करें
      # डेस्टिनेशन प्रस्तुति में स्लाइड्स के संग्रह
      $slds = $destPres->getSlides();
      $slds->addClone($SourceSlide, $iSlide, true);
      # डेस्टिनेशन प्रस्तुति को डिस्क पर सहेजें
      $destPres->save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

निर्दिष्ट सेक्शन के अंत में स्लाइड को क्लोन करें

यदि आप एक स्लाइड को क्लोन करके उसे समान प्रेजेंटेशन फ़ाइल में लेकिन अलग सेक्शन में उपयोग करना चाहते हैं, तो [addClone] मेथड का उपयोग करें। Aspose.Slides for PHP via Java प्रथम सेक्शन से स्लाइड को क्लोन करके उसे उसी प्रेजेंटेशन के दूसरे सेक्शन में सम्मिलित करना संभव बनाता है।

निम्नलिखित कोड स्निपेट दिखाता है कि कैसे स्लाइड को क्लोन करके क्लोन की गई स्लाइड को एक निर्दिष्ट सेक्शन में डालें।

  $presentation = new Presentation();
  try {
    $presentation->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 50, 300, 100);
    $presentation->getSections()->addSection("Section 1", $presentation->getSlides()->get_Item(0));
    $section2 = $presentation->getSections()->appendEmptySection("Section 2");
    $presentation->getSlides()->addClone($presentation->getSlides()->get_Item(0), $section2);
    # डेस्टिनेशन प्रस्तुति को डिस्क पर सहेजें
    $presentation->save($dataDir . "CloneSlideIntoSpecifiedSection.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

अक्सर पूछे जाने वाले प्रश्न

क्या स्पीकर नोट्स और रिव्यूअर कमेंट्स क्लोन होते हैं?

हाँ। नोट्स पेज और रिव्यू कमेंट्स क्लोन में शामिल होते हैं। यदि आप उन्हें नहीं चाहते तो सम्मिलन के बाद उन्हें उन्हें हटाएँ

चार्ट और उनके डेटा स्रोतों को कैसे संभाला जाता है?

चार्ट ऑब्जेक्ट, फॉर्मैटिंग और एम्बेडेड डेटा की कॉपी बनायी जाती है। यदि चार्ट किसी बाहरी स्रोत (जैसे OLE-एम्बेडेड वर्कबुक) से जुड़ा था, तो वह लिंक एक OLE ऑब्जेक्ट के रूप में बना रहता है। फ़ाइलों के बीच स्थानांतरण के बाद डेटा की उपलब्धता और रीफ़्रेश व्यवहार की जाँच करें।

क्या मैं क्लोन की सम्मिलन स्थिति और सेक्शन को नियंत्रित कर सकता हूँ?

हाँ। आप क्लोन को विशिष्ट स्लाइड इंडेक्स पर सम्मिलित कर सकते हैं और उसे इच्छित सेक्शन में रख सकते हैं। यदि लक्ष्य सेक्शन मौजूद नहीं है, तो पहले उसे बनाएँ और फिर स्लाइड को उसमें ले जाएँ।