Prezentáció diák klónozása .NET-ben
Bevezetés
A klónozás egy dolog pontos másolatának vagy replikájának létrehozási folyamata. Az Aspose.Slides lehetővé teszi, hogy bármely diát lemásolja (klónozza), majd a klónozott diát beillessze az aktuális prezentációba vagy bármely más megnyitott prezentációba. A diáklónozás új diát hoz létre, amelyet a fejlesztők módosíthatnak anélkül, hogy az eredeti dia változna. Többféleképpen lehet egy diát klónozni:
- Klónozás a prezentáció végén.
- Klónozás egy másik pozícióba a prezentáción belül.
- Klónozás egy másik prezentáció végén.
- Klónozás egy másik pozícióba egy másik prezentációban.
- Klónozás a saját mesterdiájával együtt egy másik prezentációba.
Az Aspose.Slides for .NET-ben a Presentation objektum által biztosított dia gyűjtemény (az ISlide objektumok gyűjteménye) tartalmazza az AddClone és az InsertClone metódusokat a fent leírt diáklónozási műveletek végrehajtásához.
Dia klónozása a prezentáció végén
Ha egy diát szeretne klónozni, és azt ugyanabban a prezentációfájlban a meglévő diák végén használni, használja az AddClone metódust az alábbi lépések szerint:
- Hozzon létre egy példányt a Presentation osztályból.
- Hozza létre az ISlideCollection osztály példányát a Presentation objektum által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg az AddClone metódust az ISlideCollection objektumon, és adja át a klónozandó diát paraméterként az AddClone metódusnak.
- Írja ki a módosított prezentációfájlt.
Az alábbi példában egy diát (a prezentáció első pozíciójában – nulla indexen – lévő) klónoztunk a prezentáció végére.
using Aspose.Slides;
using Aspose.Slides.Export;
// Példányosít egy Presentation osztályt, amely egy prezentációfájlt képvisel
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx"))
{
// 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
ISlideCollection slds = pres.Slides;
slds.AddClone(pres.Slides[0]);
// Kiírja a módosított prezentációt a lemezre
pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
}
Dia klónozása egy másik pozícióba egy prezentáción belül
Ha egy diát szeretne klónozni, és azt ugyanabban a prezentációfájlban, de más pozícióban használni, használja az 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, amelyet a Presentation objektum biztosít.
- Hívja meg az InsertClone metódust az ISlideCollection objektumon, és adja át a klónozandó diát a kívánt új pozíció indexével együtt paraméterként az 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 (a prezentáció 1-es indexén – 2. pozíció – lévő) klónoztunk a 2-es indexre – 3. pozícióra – a prezentációban.
using Aspose.Slides;
using Aspose.Slides.Export;
// Példányosít egy Presentation osztályt, amely egy prezentációfájlt képvisel
using (Presentation pres = new Presentation("CloneWithInSamePresentation.pptx"))
{
// 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
ISlideCollection slds = pres.Slides;
// Klónozza a kívánt diát a megadott indexre ugyanabban a prezentációban
slds.InsertClone(2, pres.Slides[1]);
// Kiírja a módosított prezentációt a lemezre
pres.Save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
}
Dia klónozása egy másik prezentáció végén
Ha egy diát szeretne klónozni, és azt egy másik prezentáció fájljában a meglévő diák végén használni:
- Hozzon létre egy Presentation osztály példányt, amely tartalmazza azt a prezentációt, amelyből a diát klónozni kívánja.
- Hozzon létre egy Presentation osztály példányt, amely a célprezentációt tartalmazza, amelyhez a diát hozzáadja.
- Hozza létre az ISlideCollection osztály példányát a célprezentáció Presentation objektuma által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg az AddClone metódust az ISlideCollection objektumon, és adja át a forrásprezentáció diáját paraméterként az 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ásprezentáció első indexéről) klónoztunk a célprezentáció végére.
using Aspose.Slides;
using Aspose.Slides.Export;
// Példányosít egy Presentation osztályt a forrás prezentációfájl betöltéséhez
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// Példányosít egy Presentation osztályt a cél PPTX-hez (ahová a diát klónozni kell)
using (Presentation destPres = new Presentation())
{
// 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
ISlideCollection slds = destPres.Slides;
slds.AddClone(srcPres.Slides[0]);
// Kiírja a cél prezentációt a lemezre
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
Dia klónozása egy másik prezentációban egy másik pozícióba
Ha egy diát szeretne klónozni, és azt egy másik prezentáció fájljában egy meghatározott pozícióban használni:
- Hozzon létre egy Presentation osztály példányt, amely a forrásprezentációt tartalmazza, amelyből a diát klónozni kívánja.
- Hozzon létre egy Presentation osztály példányt, amely a célprezentációt tartalmazza, amelyhez a diát hozzáadja.
- Hozza létre az ISlideCollection osztály példányát a célprezentáció Presentation objektuma által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg az InsertClone metódust az ISlideCollection objektumon, és adja át a forrásprezentáció diáját a kívánt pozícióval együtt paraméterként az 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ásprezentáció nulla indexéről) klónoztunk a célprezentáció 1-es indexére (2. pozícióra).
using Aspose.Slides;
using Aspose.Slides.Export;
// Példányosít egy Presentation osztályt a forrás prezentációfájl betöltéséhez
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// Példányosít egy Presentation osztályt a cél PPTX-hez (ahová a diát klónozni kell)
using (Presentation destPres = new Presentation())
{
ISlideCollection slds = destPres.Slides;
slds.InsertClone(2, srcPres.Slides[0]);
// Kiírja a cél prezentációt a lemezre
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
Dia és mesterdia klónozása egy másik prezentációba
Ha egy diát a hozzá tartozó mesterdiával kíván klónozni egy prezentációból, és egy másik prezentációban használni, először a kívánt mesterdiát kell a forrásprezentációból a célprezentációba klónozni. Ezután ezt a mesterdiát kell használni a diák mesterrel történő klónozásához. A AddClone(ISlide, IMasterSlide) egy a célprezentációból származó mesterdiát vár, nem a forrásprezentációból. A diák mesterrel való klónozásához kövesse az alábbi lépéseket:
- Hozzon létre egy Presentation osztály példányt, amely a forrásprezentációt tartalmazza, amelyből a diát klónozni kívánja.
- Hozzon létre egy Presentation osztály példányt, amely a célprezentációt tartalmazza, amelyhez a diát klónozni kívánja.
- Keresse meg a klónozandó diát a hozzá tartozó mesterdiával együtt.
- Hozza létre az IMasterSlideCollection osztály példányát a célprezentáció Presentation objektuma által biztosított Masters gyűjtemény hivatkozásával.
- Hívja meg az AddClone metódust az IMasterSlideCollection objektumon, és adja át a forrás PPTX-ből származó, klónozandó mesterdiát paraméterként az AddClone metódusnak.
- Hozza létre az ISlideCollection osztály példányát a célprezentáció Presentation objektuma által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg az AddClone metódust az ISlideCollection objektumon, és adja át a forrásprezentációból származó, klónozandó diát és a mesterdiát paraméterként az AddClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
Az alábbi példában egy diát mesterdiával együtt (a forrásprezentáció nulla indexén) klónoztunk a célprezentáció végére a forrásdiáról származó mesterdia használatával.
using Aspose.Slides;
using Aspose.Slides.Export;
// Instantiate Presentation class to load the source presentation file
using (Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx"))
{
// Instantiate Presentation class for destination presentation (where slide is to be cloned)
using (Presentation destPres = new Presentation())
{
// Instantiate ISlide from the collection of slides in source presentation along with
// Master slide
ISlide SourceSlide = srcPres.Slides[0];
IMasterSlide SourceMaster = SourceSlide.LayoutSlide.MasterSlide;
// Clone the desired master slide from the source presentation to the collection of masters in the
// Destination presentation
IMasterSlideCollection masters = destPres.Masters;
IMasterSlide DestMaster = SourceSlide.LayoutSlide.MasterSlide;
// Clone the desired master slide from the source presentation to the collection of masters in the
// Destination presentation
IMasterSlide iSlide = masters.AddClone(SourceMaster);
// Clone the desired slide from the source presentation with the desired master to the end of the
// Collection of slides in the destination presentation
ISlideCollection slds = destPres.Slides;
slds.AddClone(SourceSlide, iSlide, true);
// Clone the desired master slide from the source presentation to the collection of masters in the // Destination presentation
// Save the destination presentation to disk
destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
}
}
Dia klónozása egy megadott szekció végén
Az Aspose.Slides for .NET segítségével egy prezentáció egy szekciójából klónozhat diát, és beillesztheti azt ugyanabban a prezentációban egy másik szekcióba. Ebben az esetben az AddClone metódust kell használni az ISlideCollection interfészből.
Ez a C# kód bemutatja, hogyan lehet egy diát klónozni és a klónozott diát egy megadott szekcióba beilleszteni:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
slide.Shapes.AddAutoShape(ShapeType.Ellipse, 150, 150, 100, 100); // klónozáshoz
ISlide slide2 = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
ISection section = pres.Sections.AddSection("Section2", slide2);
pres.Slides.AddClone(slide, section);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
A megfelelő dia méret biztosítása
Dia klónozásakor egy másik prezentációba ügyeljen arra, hogy a célprezentáció dia mérete megegyezzen a forráséval. Ha a dia méretek eltérnek, az Aspose.Slides nem méretezi át automatikusan a klónozott alakzatokat – azok eredeti koordinátái és méretei megmaradnak, ami azt eredményezheti, hogy a tartalom eltolódik vagy a dia határain kívül helyezkedik el.
A mester és a dia klónozása előtt beállíthatja a célprezentáció dia méretét, hogy az egyezzen a forráséval:
SizeF sourceSize = sourcePresentation.SlideSize.Size;
targetPresentation.SlideSize.SetSize(
sourceSize.Width, sourceSize.Height, SlideSizeScaleType.DoNotScale);
Ezt a mester és a dia klónozása előtt végezze.
FAQ
A beszélői jegyzetek és a recenziós megjegyzések klónozódnak?
Igen. A jegyzetoldal és a felülvizsgálati megjegyzések a klónba kerülnek. Ha nem szeretné, akkor a beillesztés után távolítsa el őket.
Hogyan kezelik a diagramok és azok adatforrásai?
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 OLE-beágyazott munkafüzethez) volt kapcsolva, ez a kapcsolat egy OLE objektum formájában megmarad. Fájlok közti áthelyezés után ellenőrizze az adatok elérhetőségét és a frissítési viselkedést.
Korlátozhatom a klón beszúrási pozícióját és szekcióit?
Igen. A klón beilleszthető egy adott dia indexre, és elhelyezhető egy kiválasztott szekcióba. Ha a cél szekció nem létezik, előbb hozza létre, majd mozgassa át a diát.