Prezentációs diák klónozása PHP-ben
Bevezetés
A klónozás egy pontos másolat vagy replikáció készítésének folyamata. Az Aspose.Slides for PHP via Java lehetővé teszi, hogy bármely dia másolatát vagy klónját elkészítsük, majd azt a klónozott diát a jelenlegi vagy bármely más megnyitott prezentációba illesszük. A diaklónozási folyamat egy új diát hoz létre, amelyet a fejlesztők módosíthatnak az eredeti dia megváltoztatása nélkül. Többféle módja van a dia klónozásának:
- Klónozás a prezentáció végén.
- Klónozás a prezentáció másik pozíciójában.
- Klónozás egy másik prezentáció végén.
- Klónozás egy másik prezentáció másik pozíciójában.
- Klónozás egy adott pozícióban egy másik prezentációban.
Az Aspose.Slides for PHP via Java-ban a Presentation objektum által kiadott (a Slide objektumok gyűjteménye) biztosítja a addClone és a insertClone metódusokat a fenti diaklónozási típusok végrehajtásához.
Dia klónozása a prezentáció végén
Ha egy diát szeretne klónozni, majd ugyanabban a prezentációs fájlban a meglévő diák végén használni, használja a addClone metódust az alább felsorolt lépések szerint:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a SlideCollection objektumot a Presentation objektum által kiadott dia gyűjtemény hivatkozásával.
- Hívja meg a addClone metódust, amely a SlideCollection objektum által ki van adva, és adja át a klónozandó diát paraméterként a addClone metódusnak.
- Írja ki a módosított prezentációfájlt.
Az alábbi példában egy diát (amely a prezentáció első pozíciójában – nulla index – helyezkedik) klónoztunk a prezentáció végére.
# Példányosítsa a Presentation osztályt, amely egy prezentációs fájlt képvisel
$pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
# Klónozza a kívánt diát a ugyanabban a prezentációban lévő diák gyűjteményének végére
$slds = $pres->getSlides();
$slds->addClone($pres->getSlides()->get_Item(0));
# Írja a módosított prezentációt a lemezre
$pres->save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Dia klónozása egy másik pozícióba a prezentációon belül
Ha egy diát szeretne klónozni, majd ugyanabban a prezentációs fájlban, de másik pozícióban használni, használja a insertClone metódust:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a SlideCollection objektumot a Slides gyűjtemény hivatkozásával, amelyet a Presentation objektum tesz elérhetővé.
- Hívja meg a insertClone metódust, amely a SlideCollection objektum által ki van adva, és adja át a klónozandó diát a kívánt új pozíció indexével együtt paraméterként a insertClone metódusnak.
- Írja ki a módosított prezentációt PPTX fájlként.
Az alábbi példában egy diát (amely a nulla index – 1. pozíció – helyén van a prezentációban) klónoztunk az 1-es indexre – 2. pozícióra – a prezentációban.
# Példányosítsa a Presentation osztályt, amely egy prezentációs fájlt képvisel
$pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
# Klónozza a kívánt diát a ugyanabban a prezentációban lévő diák gyűjteményének végére
$slds = $pres->getSlides();
# Klónozza a kívánt diát a ugyanabban a prezentációban a megadott indexen
$slds->insertClone(2, $pres->getSlides()->get_Item(1));
# Írja a módosított prezentációt a lemezre
$pres->save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Dia klónozása egy másik prezentáció végén
Ha egy diát egy prezentációból kell klónozni, és egy másik prezentációban, a meglévő diák végén szeretné használni:
- Hozzon létre egy példányt a Presentation osztályból, amely a forrás prezentációt tartalmazza.
- Hozzon létre egy példányt a Presentation osztályból, amely a cél prezentációt tartalmazza, amelyhez a dia hozzá lesz adva.
- Szerezze meg a SlideCollection objektumot a Slides gyűjtemény hivatkozásával, amelyet a cél prezentáció Presentation objektuma tesz elérhetővé.
- Hívja meg a addClone metódust, amely a SlideCollection objektum által ki van adva, és adja át a forrás prezentációból származó diát paraméterként a addClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
Az alábbi példában egy diát (a forrás prezentáció első indexéből) klónoztunk a célprezentáció végére.
# A Presentation osztály példányosítása a forrás prezentációs fájl betöltéséhez
$srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
# A Presentation osztály példányosítása a cél PPTX-hez (ahová a dia klónozandó)
$destPres = new Presentation();
try {
# Klónozza a kívánt diát a forrás prezentációból a cél prezentáció diagyűjteményének végére
$slds = $destPres->getSlides();
$slds->addClone($srcPres->getSlides()->get_Item(0));
# Írja a cél prezentációt a lemezre
$destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
} finally {
$destPres->dispose();
}
} finally {
$srcPres->dispose();
}
Dia klónozása egy másik pozícióba egy másik prezentációban
Ha egy diát egy prezentációból kell klónozni, és egy másik prezentációban, egy adott pozícióban szeretné használni:
- Hozzon létre egy példányt a Presentation osztályból, amely a forrás prezentációt tartalmazza, ahonnan a diát klónozni kell.
- Hozzon létre egy példányt a Presentation osztályból, amely a cél prezentációt tartalmazza, amelyhez a dia hozzá lesz adva.
- Szerezze meg a SlideCollection osztályt a Slides gyűjtemény hivatkozásával, amelyet a cél prezentáció Presentation objektuma tesz elérhetővé.
- Hívja meg a insertClone metódust, amely a SlideCollection objektum által ki van adva, és adja át a forrás prezentációból származó diát a kívánt pozícióval együtt paraméterként a insertClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
Az alábbi példában egy diát (a forrás prezentáció nulla indexéből) klónoztunk az 1-es indexre (2. pozíció) a célprezentációban.
# A Presentation osztály példányosítása a forrás prezentációs fájl betöltéséhez
$srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
# A Presentation osztály példányosítása a cél PPTX-hez (ahová a dia klónozandó)
$destPres = new Presentation();
try {
# Klónozza a kívánt diát a forrás prezentációból a cél prezentáció diagyűjteményének végére
$slds = $destPres->getSlides();
$slds->insertClone(2, $srcPres->getSlides()->get_Item(0));
# Írja a cél prezentációt a lemezre
$destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
} finally {
$destPres->dispose();
}
} finally {
$srcPres->dispose();
}
Dia klónozása egy adott pozícióban egy másik prezentációban
Ha egy diát master diával együtt kell klónozni egy prezentációból, és egy másik prezentációba szeretné helyezni, először a kívánt master diát kell klónozni a forrás prezentációból a cél prezentációba. Ezután ezt a master diát kell használni a masteres dia klónozásához. A addClone(Slide, MasterSlide, boolean) egy a cél prezentációból származó master diát vár, nem a forrásból. A masteres dia klónozásához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból, amely a forrás prezentációt tartalmazza, ahonnan a diát klónozni kell.
- Hozzon létre egy példányt a Presentation osztályból, amely a cél prezentációt tartalmazza, ahová a dia klónozva lesz.
- Hozzáférés a klónozandó diához a master diával együtt.
- Hozza létre a MasterSlideCollection osztályt a cél prezentáció Presentation objektuma által kitetts Masters gyűjtemény hivatkozásával.
- Hívja meg a addClone metódust, amely a MasterSlideCollection objektum által ki van adva, és adja át a forrás PPTX‑ből származó master diát paraméterként a addClone metódusnak.
- Hozza létre a SlideCollection osztályt a Slides gyűjtemény hivatkozásával, amelyet a cél prezentáció Presentation objektuma tesz elérhetővé.
- Hívja meg a addClone metódust, amely a SlideCollection objektum által ki van adva, és adja át a forrás prezentációból származó diát és a master diát paraméterként a addClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
Az alábbi példában egy masteres diát (a forrás prezentáció nulla indexén) klónoztunk a célprezentáció végére a forrás diából származó master használatával.
# A Presentation osztály példányosítása a forrás prezentációs fájl betöltéséhez
$srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
# A Presentation osztály példányosítása a cél prezentációhoz (ahová a diát klónozni kell)
$destPres = new Presentation();
try {
# ISlide példányosítása a forrás prezentáció diagyűjteményéből együtt
# Master dia
$SourceSlide = $srcPres->getSlides()->get_Item(0);
$SourceMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
# A kívánt master dia klónozása a forrás prezentációból a masterek gyűjteményébe a
# Cél prezentációban
$masters = $destPres->getMasters();
$DestMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
# A kívánt master dia klónozása a forrás prezentációból a masterek gyűjteményébe a
# Cél prezentációban
$iSlide = $masters->addClone($SourceMaster);
# A kívánt dia klónozása a forrás prezentációból a kívánt masterrel a végére a
# Dia gyűjteménynek a cél prezentációban
$slds = $destPres->getSlides();
$slds->addClone($SourceSlide, $iSlide, true);
# A cél prezentáció mentése a lemezre
$destPres->save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat::Pptx);
} finally {
$destPres->dispose();
}
} finally {
$srcPres->dispose();
}
Dia klónozása egy megadott szekció végén
Ha egy diát szeretne klónozni, majd ugyanabban a prezentációs fájlban, de egy másik szekcióban használni, használja a addClone metódust, amely a SlideCollection osztály által ki van adva. Az Aspose.Slides for PHP via Java lehetővé teszi, hogy egy diát az első szekcióból klónozzunk, majd a klónozott diát a második szekcióba illesszük ugyanabban a prezentációban.
Az alábbi kódrészlet bemutatja, hogyan lehet egy diát klónozni, és a klónozott diát egy megadott szekcióba illeszteni.
$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);
# A cél prezentáció mentése a lemezre
$presentation->save($dataDir . "CloneSlideIntoSpecifiedSection.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
GYIK
A beszédjegyzetek és a felülvizsgáló megjegyzések klónozódnak?
Igen. A jegyzetoldal és a felülvizsgálati megjegyzések benne vannak a klónban. Ha nem szeretné őket, remove them a beillesztés után.
A diagramok és adatforrásaik hogyan kezelődnek?
A diagramobjektum, a formázás és a beágyazott adatok másolva vannak. Ha a diagram külső forráshoz volt kapcsolva (például egy OLE‑beágyazott munkafüzethez), ez a kapcsolat megmarad egy OLE object formájában. Fájlok közötti áthelyezés után ellenőrizze az adatok elérhetőségét és a frissítési viselkedést.
A klón beillesztési pozícióját és szekcióit irányíthatom?
Igen. A klónt beillesztheti egy adott dia indexre, és elhelyezheti egy választott section‑ben. Ha a cél szekció nem létezik, először hozza létre, majd mozgassa a diát oda.