Clonen van presentatiedia's in Java
Introductie
Klonen is het proces waarbij een exacte kopie of replica van iets wordt gemaakt. Aspose.Slides for Java maakt het ook mogelijk om een kopie of kloon van elke dia te maken en die gekloonde dia vervolgens in de huidige of een andere geopende presentatie in te voegen. Het proces van dia‑klonen creëert een nieuwe dia die door ontwikkelaars kan worden aangepast zonder de originele dia te wijzigen. Er zijn verschillende mogelijke manieren om een dia te klonen:
- Kloon aan het einde binnen een presentatie.
- Kloon op een andere positie binnen de presentatie.
- Kloon aan het einde in een andere presentatie.
- Kloon op een andere positie in een andere presentatie.
- Kloon samen met de bijbehorende masterslide naar een andere presentatie.
In Aspose.Slides for Java biedt de (een verzameling van ISlide-objecten) die wordt blootgesteld door het Presentation-object de methoden addClone en insertClone om de bovenstaande soorten dia‑klonen uit te voeren
Kloon een dia aan het einde van een presentatie
Als u een dia wilt klonen en deze vervolgens in hetzelfde presentatiebestand aan het einde van de bestaande dia’s wilt gebruiken, gebruikt u de addClone‑methode volgens de onderstaande stappen:
- Maak een instantie van de Presentation-klasse.
- Instantieser de ISlideCollection‑klasse door te verwijzen naar de Slides‑collectie die wordt blootgesteld door het Presentation-object.
- Roep de addClone‑methode aan die wordt blootgesteld door het ISlideCollection‑object en geef de te klonen dia als parameter aan de addClone‑methode.
- Schrijf het gewijzigde presentatiebestand.
In het onderstaande voorbeeld hebben we een dia (gelegen op de eerste positie – nul‑index – van de presentatie) naar het einde van de presentatie gekloond.
import com.aspose.slides.*;
// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt
Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
// Kloon de gewenste dia naar het einde van de collectie dia's in dezelfde presentatie
ISlideCollection slds = pres.getSlides();
slds.addClone(pres.getSlides().get_Item(0));
// Schrijf de gewijzigde presentatie naar schijf
pres.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Kloon een dia naar een andere positie binnen een presentatie
Als u een dia wilt klonen en deze vervolgens in hetzelfde presentatiebestand, maar op een andere positie, wilt gebruiken, gebruikt u de insertClone‑methode:
- Maak een instantie van de Presentation-klasse.
- Instantieer de klasse door te verwijzen naar de Slides‑collectie die wordt blootgesteld door het Presentation-object.
- Roep de insertClone‑methode aan die wordt blootgesteld door het ISlideCollection‑object en geef de te klonen dia samen met de index voor de nieuwe positie als parameter aan de insertClone‑methode.
- Schrijf de gewijzigde presentatie weg als een PPTX‑bestand.
In het onderstaande voorbeeld hebben we een dia (gelegen op index 1 – positie 2 – van de presentatie) naar index 2 – positie 3 – van de presentatie gekloond.
import com.aspose.slides.*;
// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt
Presentation pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
// Haal de collectie dia's op in de presentatie
ISlideCollection slds = pres.getSlides();
// Kloon de gewenste dia naar de opgegeven index in dezelfde presentatie
slds.insertClone(2, pres.getSlides().get_Item(1));
// Schrijf de gewijzigde presentatie naar schijf
pres.save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Kloon een dia aan het einde van een andere presentatie
Als u een dia van de ene presentatie wilt klonen en deze in een andere presentatie wilt gebruiken, aan het einde van de bestaande dia’s:
- Maak een instantie van de Presentation-klasse die de bronpresentatie bevat waaruit de dia wordt gekloond.
- Maak een instantie van de Presentation-klasse die de doelpresentatie bevat waaraan de dia wordt toegevoegd.
- Instantieser de ISlideCollection-klasse door te verwijzen naar de Slides‑collectie die wordt blootgesteld door het Presentation‑object van de doelpresentatie.
- Roep de addClone‑methode aan die wordt blootgesteld door het ISlideCollection‑object en geef de dia uit de bronpresentatie als parameter aan de addClone‑methode.
- Schrijf het gewijzigde doelpresentatiebestand.
In het onderstaande voorbeeld hebben we een dia (van de eerste index van de bronpresentatie) naar het einde van de doelpresentatie gekloond.
import com.aspose.slides.*;
// Instantieer de Presentation-klasse om het bronpresentatiebestand te laden
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Instantieer de Presentation-klasse voor de doel-PPTX (waar de dia naartoe wordt gekloond)
Presentation destPres = new Presentation();
try {
// Kloon de gewenste dia van de bronpresentatie naar het einde van de collectie dia's in de doelpresentatie
ISlideCollection slds = destPres.getSlides();
slds.addClone(srcPres.getSlides().get_Item(0));
// Schrijf de doelpresentatie naar schijf
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Kloon een dia naar een andere positie in een andere presentatie
Als u een dia van de ene presentatie wilt klonen en deze in een andere presentatie op een specifieke positie wilt gebruiken:
- Maak een instantie van de Presentation-klasse die de bronpresentatie bevat waaruit de dia wordt gekloond.
- Maak een instantie van de Presentation-klasse die de doelpresentatie bevat waaraan de dia wordt toegevoegd.
- Instantieser de ISlideCollection‑klasse door te verwijzen naar de Slides‑collectie die wordt blootgesteld door het Presentation‑object van de doelpresentatie.
- Roep de insertClone‑methode aan die wordt blootgesteld door het ISlideCollection‑object en geef de dia uit de bronpresentatie samen met de gewenste positie als parameter aan de insertClone‑methode.
- Schrijf het gewijzigde doelpresentatiebestand.
In het onderstaande voorbeeld hebben we een dia (van de nul‑index van de bronpresentatie) naar index 1 (positie 2) van de doelpresentatie gekloond.
import com.aspose.slides.*;
// Instantieer de Presentation-klasse om het bronpresentatiebestand te laden
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Instantieer de Presentation-klasse voor de doel-PPTX (waar de dia wordt gekloond)
Presentation destPres = new Presentation();
try {
// Kloon de gewenste dia van de bronpresentatie naar de opgegeven index in de doelpresentatie
ISlideCollection slds = destPres.getSlides();
slds.insertClone(1, srcPres.getSlides().get_Item(0));
// Schrijf de doelpresentatie naar schijf
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Kloon een dia met zijn masterslide naar een andere presentatie
Als u een dia met een masterslide van de ene presentatie wilt klonen en in een andere presentatie wilt gebruiken, moet u eerst de gewenste masterslide van de bronpresentatie naar de doelpresentatie klonen. Vervolgens moet u die masterslide gebruiken voor het klonen van de dia met masterslide. De addClone(ISlide, IMasterSlide, boolean) verwacht een masterslide uit de doelpresentatie in plaats van uit de bronpresentatie. Volg onderstaande stappen om de dia met een master te klonen:
- Maak een instantie van de Presentation-klasse die de bronpresentatie bevat waaruit de dia wordt gekloond.
- Maak een instantie van de Presentation-klasse die de doelpresentatie bevat waarnaar de dia wordt gekloond.
- Toegang krijgen tot de te klonen dia samen met de masterslide.
- Instantieser de IMasterSlideCollection-klasse door te verwijzen naar de Masters‑collectie die wordt blootgesteld door het Presentation-object van de doelpresentatie.
- Roep de addClone‑methode aan die wordt blootgesteld door het IMasterSlideCollection-object en geef de master uit de bron‑PPTX die moet worden gekloond als parameter aan de addClone‑methode.
- Instantieser de ISlideCollection‑klasse door de referentie naar de Slides‑collectie te zetten die wordt blootgesteld door het Presentation-object van de doelpresentatie.
- Roep de addClone‑methode aan die wordt blootgesteld door het ISlideCollection‑object en geef de dia uit de bronpresentatie die moet worden gekloond en de masterslide als parameters aan de addClone‑methode.
- Schrijf het gewijzigde doelpresentatiebestand.
In het onderstaande voorbeeld hebben we een dia met een master (gelegen op de nul‑index van de bronpresentatie) aan het einde van de doelpresentatie gekloond met een master van de bron‑dia.
import com.aspose.slides.*;
// Instantieer de Presentation-klasse om het bronpresentatiebestand te laden
Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
// Instantieer de Presentation-klasse voor de doelpresentatie (waar de dia wordt gekloond)
Presentation destPres = new Presentation();
try {
// Instantieser ISlide uit de collectie dia's in de bronpresentatie samen met
// Masterslide
ISlide SourceSlide = srcPres.getSlides().get_Item(0);
IMasterSlide SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// Kloon de gewenste masterslide van de bronpresentatie naar de collectie masters in de
// Doelpresentatie
IMasterSlideCollection masters = destPres.getMasters();
IMasterSlide DestMaster = masters.addClone(SourceMaster);
// Kloon de gewenste dia van de bronpresentatie met de gewenste master naar het einde van de
// Collectie dia's in de doelpresentatie
ISlideCollection slds = destPres.getSlides();
slds.addClone(SourceSlide, DestMaster, true);
// Sla de doelpresentatie op naar schijf
destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Kloon een dia aan het einde van een specifieke sectie
Als u een dia wilt klonen en deze vervolgens binnen hetzelfde presentatiebestand, maar in een andere sectie, wilt gebruiken, gebruik dan de addClone‑methode die wordt blootgesteld door de ISlideCollection-interface. Aspose.Slides for Java maakt het mogelijk om een dia uit de eerste sectie te klonen en die gekloonde dia in de tweede sectie van dezelfde presentatie in te voegen.
De volgende code‑fragment toont hoe u een dia kunt klonen en de gekloonde dia in een opgegeven sectie kunt invoegen.
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);
// Sla de doelpresentatie op naar schijf
presentation.save("CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Zorg voor overeenkomende dia‑grootte
Bij het klonen van dia’s naar een andere presentatie moet de doelpresentatie dezelfde dia‑grootte hebben als de bron. Als de dia‑groottes verschillen, schaalt Aspose.Slides de gekloonde vormen niet automatisch opnieuw – hun oorspronkelijke coördinaten en afmetingen blijven behouden, waardoor de inhoud misaligned kan zijn of buiten de dia‑grenzen kan uitsteken.
U kunt de dia‑grootte van de doelpresentatie instellen zodat deze overeenkomt met die van de bron vóór het klonen van de master en de dia:
Dimension2D sourceSize = sourcePresentation.getSlideSize().getSize();
targetPresentation.getSlideSize().setSize(
sourceSize.getWidth(), sourceSize.getHeight(), SlideSizeScaleType.DoNotScale);
Doe dit vóór het klonen van de master en de dia.
FAQ
Worden aantekeningen van de spreker en beoordelingscommentaren gekloond?
Ja. De notitiepagina en de review‑commentaren zijn opgenomen in de kloon. Als u ze niet wilt, verwijder ze na het invoegen.
Hoe worden grafieken en hun gegevensbronnen behandeld?
Het grafiekobject, de opmaak en de ingesloten data worden gekopieerd. Als de grafiek gekoppeld was aan een externe bron (bijv. een OLE‑ingesloten werkmap), blijft die koppeling behouden als een OLE‑object. Na verplaatsing tussen bestanden, controleer de beschikbaarheid van de data en het vernieuwingsgedrag.
Kan ik de invoegpositie en secties voor de kloon regelen?
Ja. U kunt de kloon invoegen op een specifieke dia‑index en plaatsen in een gekozen sectie. Als de doel‑sectie nog niet bestaat, maak deze dan eerst aan en verplaats vervolgens de dia ernaar.