Dia klónozása Java-ban
Bevezetés
A klónozás egy pontos másolat vagy replikáció létrehozásának folyamata. Az Aspose.Slides for Java lehetővé teszi, hogy bármely dia másolatát vagy klónját elkészítsük, majd azt beillesszük az aktuális vagy bármely más megnyitott bemutatóba. A dia klónozása során egy új dia jön létre, amelyet a fejlesztők módosíthatnak anélkül, hogy az eredeti diát érintenék. A dia klónozásának több lehetséges módja van:
- Klónozás a bemutató végén.
- Klónozás egy másik pozícióba a bemutatón belül.
- Klónozás egy másik bemutató végén.
- Klónozás egy másik pozícióba egy másik bemutatóban.
- Klónozás a mesterdiával együtt egy másik bemutatóba.
Az Aspose.Slides for Java‑ban a Presentation objektum által biztosított (az ISlide objektumok gyűjteménye) ISlideCollection osztálya a addClone és insertClone metódusokkal teszi lehetővé a fenti dia klónozási típusok végrehajtását.
Dia klónozása a bemutató végén
Ha egy diát klónozni szeretne, majd ugyanabban a bemutató fájlban az eredeti diák vége után használni, használja a addClone metódust az alábbi lépések szerint:
- Hozzon létre egy példányt a Presentation osztályból.
- Hozzon létre egy példányt a ISlideCollection osztályból a [Presentation] objektum által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg az addClone metódust a ISlideCollection objektumon, és adja át a klónozandó diát paraméterként.
- Írja ki a módosított bemutató fájlt.
Az alább látható példában egy diát (amely az első pozícióban – nulladik indexen – helyezkedik el) klónoztunk a bemutató végére.
import com.aspose.slides.*;
// Presentation osztály példányosítása, amely egy bemutató fájlt képvisel
Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
// Az adott dia klónozása a diák gyűjteményének végére ugyanabban a bemutatóban
ISlideCollection slds = pres.getSlides();
slds.addClone(pres.getSlides().get_Item(0));
// Módosított bemutató mentése lemezre
pres.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Dia klónozása egy másik pozícióba egy bemutatón belül
Ha egy diát klónozni szeretne, majd ugyanabban a bemutató fájlban egy másik helyen használni, használja a insertClone metódust:
- Hozzon létre egy példányt a Presentation osztályból.
- Hozzon létre egy példányt a Slides gyűjteményre hivatkozva a [Presentation] objektumon keresztül.
- Hívja meg az insertClone metódust a ISlideCollection objektumon, és adja át a klónozandó diát valamint az új pozíció indexét paraméterként.
- Írja ki a módosított bemutatót PPTX fájlként.
Az alább látható példában egy diát (amely a 1‑es indexen – 2‑es pozícióban – helyezkedik el) klónoztunk a 2‑es indexre – 3‑as pozícióba – a bemutatóban.
import com.aspose.slides.*;
// Presentation osztály példányosítása, amely egy bemutató fájlt képvisel
Presentation pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
// A bemutató diák gyűjteményének lekérése
ISlideCollection slds = pres.getSlides();
// A kívánt dia klónozása a megadott indexre ugyanabban a bemutatóban
slds.insertClone(2, pres.getSlides().get_Item(1));
// A módosított bemutató mentése lemezre
pres.save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Dia klónozása egy másik bemutató végén
Ha egy diát egy bemutatóból egy másik bemutatóba szeretne klónozni, a meglévő diák végére:
- Hozzon létre egy példányt a Presentation osztályból, amely a forrás bemutatót tartalmazza.
- Hozzon létre egy példányt a Presentation osztályból, amely a célbemutatót tartalmazza.
- Hozzon létre egy ISlideCollection példányt a célbemutató Slides gyűjteményére hivatkozva.
- Hívja meg az addClone metódust az ISlideCollection objektumon, és adja át a forrásbemutatóból származó diát paraméterként.
- Írja ki a módosított célbemutató fájlt.
Az alább látható példában egy diát (a forrásbemutató első indexéről) klónoztunk a célbemutató végére.
import com.aspose.slides.*;
// Presentation osztály példányosítása a forrás bemutató fájl betöltéséhez
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Presentation osztály példányosítása a cél PPTX-hez (ahol a diát klónozni kell)
Presentation destPres = new Presentation();
try {
// A kívánt dia klónozása a forrás bemutatóból a cél bemutató diagyűjteményének végére
ISlideCollection slds = destPres.getSlides();
slds.addClone(srcPres.getSlides().get_Item(0));
// A cél bemutató mentése 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 bemutatóban
Ha egy diát egy bemutatóból egy másik bemutatóba szeretne klónozni, egy meghatározott pozícióba:
- Hozzon létre egy példányt a Presentation osztályból, amely a forrás bemutatót tartalmazza.
- Hozzon létre egy példányt a Presentation osztályból, amely a célbemutatót tartalmazza.
- Hozzon létre egy ISlideCollection példányt a célbemutató Slides gyűjteményére hivatkozva.
- Hívja meg az insertClone metódust az ISlideCollection objektumon, és adja át a forrásbemutatóból származó diát valamint a kívánt pozíció indexét paraméterként.
- Írja ki a módosított célbemutató fájlt.
Az alább látható példában egy diát (a forrásbemutató nulladik indexéről) klónoztunk az 1‑es indexre (2‑as pozíció) a célbemutatóban.
import com.aspose.slides.*;
// Presentation osztály példányosítása a forrás bemutató fájl betöltéséhez
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Presentation osztály példányosítása a cél PPTX-hez (ahol a diát klónozni kell)
Presentation destPres = new Presentation();
try {
// A kívánt dia klónozása a forrás bemutatóból a cél bemutató megadott indexére
ISlideCollection slds = destPres.getSlides();
slds.insertClone(1, srcPres.getSlides().get_Item(0));
// A cél bemutató mentése lemezre
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Dia klónozása a saját mesterdiájával együtt egy másik bemutatóba
Ha egy diát a saját mesterdiájával együtt szeretne klónozni egy másik bemutatóba, először a kívánt mesterdiát kell a forrásbemutatóból a célbemutatóba klónozni. Ezután ezt a mesterdiát kell használni a dia klónozásához. A addClone(ISlide, IMasterSlide, boolean) metódus a célbemutató mesterdiáját várja, nem a forrásét. A dia mesterdiával való 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ásbemutatót tartalmazza.
- Hozzon létre egy példányt a Presentation osztályból, amely a célbemutatót tartalmazza.
- Hozzáférés a klónozandó diához és annak mesterdiájához.
- Hozzon létre egy IMasterSlideCollection példányt a célbemutató [Presentation] objektum által biztosított Masters gyűjteményre hivatkozva.
- Hívja meg az addClone metódust az IMasterSlideCollection objektumon, és adja át a forrás PPTX‑ből származó mesterdiát paraméterként.
- Hozzon létre egy ISlideCollection példányt a célbemutató Slides gyűjteményére hivatkozva.
- Hívja meg az addClone metódust az ISlideCollection objektumon, és adja át a forrásbemutatóból származó diát valamint a mesterdiát paraméterként.
- Írja ki a módosított célbemutató fájlt.
Az alább látható példában egy diát a mesterdiával együtt (amely a forrásbemutató nulladik indexén helyezkedik el) klónoztunk a célbemutató végére a forrásdiától származó mesterdiát használva.
import com.aspose.slides.*;
// Presentation osztály példányosítása a forrás bemutató fájl betöltéséhez
Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
// Presentation osztály példányosítása a célbemutatóhoz (ahol a diát klónozni kell)
Presentation destPres = new Presentation();
try {
// ISlide példányosítása a forrás bemutató diagyűjteményéből, valamint
// a mesterdiával
ISlide SourceSlide = srcPres.getSlides().get_Item(0);
IMasterSlide SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// A kívánt mesterdia klónozása a forrás bemutatóból a mesterek gyűjteményébe a
// célbemutatóban
IMasterSlideCollection masters = destPres.getMasters();
IMasterSlide DestMaster = masters.addClone(SourceMaster);
// A kívánt dia klónozása a forrás bemutatóból a kívánt mesterrel a
// célbemutató diagyűjteményének végére
ISlideCollection slds = destPres.getSlides();
slds.addClone(SourceSlide, DestMaster, true);
// A célbemutató mentése lemezre
destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Dia klónozása egy meghatározott szakasz végén
Ha egy diát klónozni szeretne, majd ugyanabban a bemutató fájlban egy másik szakaszban használni, használja a addClone metódust, amelyet az ISlideCollection interfész biztosít. Az Aspose.Slides for Java lehetővé teszi, hogy egy diát az első szakaszból klónozzunk, majd a klónozott diát a második szakaszba illesszük be ugyanabban a bemutatóban.
Az alábbi kódrészlet bemutatja, hogyan lehet egy diát klónozni, és a klónozott diát egy meghatározott szakaszba beilleszteni.
import com.aspose.slides.*;
IPresentation 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));
ISection section2 = presentation.getSections().appendEmptySection("Section 2");
presentation.getSlides().addClone(presentation.getSlides().get_Item(0), section2);
// A célbemutató mentése lemezre
presentation.save("CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Győződjön meg a megfelelő diaméret egyezéséről
Dia klónozása másik bemutatóba történő átvitelénél győződjön meg arról, hogy a célbemutató diamérete megegyezik a forráséval. Ha a diaméretek eltérnek, az Aspose.Slides nem méretezi át automatikusan a klónozott alakzatokat – az eredeti koordinátáik és méreteik megmaradnak, ami eltolódott vagy a dián kívül eső tartalomhoz vezethet.
Állítsa be a célbemutató diaméretét úgy, hogy az megegyezzen a forrással a mester és a dia klónozása előtt:
Dimension2D sourceSize = sourcePresentation.getSlideSize().getSize();
targetPresentation.getSlideSize().setSize(
sourceSize.getWidth(), sourceSize.getHeight(), SlideSizeScaleType.DoNotScale);
Ezt a mester és a dia klónozása előtt végezze el.
GYIK
A jegyzetek és a felülvizsgálati megjegyzések klónozódnak?
Igen. A jegyzetoldal és a felülvizsgálati megjegyzések benne vannak a klónban. Ha nem kívánja őket, a beillesztés után távolítsa el őket.
Hogyan kezelik a diagramokat és azok adatforrásait?
A diagram objektuma, formázása és a beágyazott adatok másolásra kerülnek. Ha a diagram egy külső forráshoz (például egy OLE‑beágyazott munkafüzethez) volt csatolva, ez a kapcsolat OLE objektum formájában megmarad. A fájlok közti áthelyezés után ellenőrizze az adatok elérhetőségét és a frissítési viselkedést.
Szabályozhatom a beillesztés pozícióját és a szakaszokat a klón számára?
Igen. A klón beilleszthető egy adott diaindexre, és elhelyezhető egy kiválasztott szakasz‑ban. Ha a cél szakasz nem létezik, először hozza létre, majd mozgassa a diát oda.