Klonování snímků prezentace v Javě
Úvod
Klónování je proces vytvoření přesné kopie nebo repliky něčeho. Aspose.Slides for Java také umožňuje vytvořit kopii nebo klon libovolného snímku a poté vložit tento klonovaný snímek do aktuální nebo jiné otevřené prezentace. Proces klonování snímku vytvoří nový snímek, který lze upravovat vývojáři, aniž by se změnil původní snímek. Existuje několik možných způsobů, jak klonovat snímek:
- Klonovat na konci v rámci prezentace.
- Klonovat na jiném místě v rámci prezentace.
- Klonovat na konci v jiné prezentaci.
- Klonovat na jiném místě v jiné prezentaci.
- Klonovat na konkrétním místě v jiné prezentaci.
V Aspose.Slides for Java poskytuje (sbírka objektů ISlide ) vystavená objektem Presentation metody addClone a insertClone , které umožňují provádět výše uvedené typy klonování snímků
Klonovat snímek na konci prezentace
Pokud chcete klonovat snímek a poté jej použít ve stejném souboru prezentace na konci existujících snímků, použijte metodu addClone podle níže uvedených kroků:
- Vytvořte instanci třídy Presentation.
- Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation.
- Zavolejte metodu addClone vystavenou objektem ISlideCollection a jako parametr předávejte snímek, který má být klonován, metodě addClone.
- Zapište upravený soubor prezentace.
V níže uvedeném příkladu jsme klonovali snímek (nacházející se na první pozici – nulový index – prezentace) na konec prezentace.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace
Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
// Zkopírujte požadovaný snímek na konec kolekce snímků ve stejné prezentaci
ISlideCollection slds = pres.getSlides();
slds.addClone(pres.getSlides().get_Item(0));
// Uložte upravenou prezentaci na disk
pres.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Klonovat snímek na jiné místo v rámci prezentace
Pokud chcete klonovat snímek a poté jej použít ve stejném souboru prezentace, ale na jiném místě, použijte metodu insertClone:
- Vytvořte instanci třídy Presentation.
- Instancujte třídu odkazováním na kolekci Slides vystavenou objektem Presentation.
- Zavolejte metodu insertClone vystavenou objektem ISlideCollection a jako parametr předávejte snímek, který má být klonován, spolu s indexem pro novou pozici metodě insertClone.
- Zapište upravenou prezentaci jako soubor PPTX.
V níže uvedeném příkladu jsme klonovali snímek (nacházející se na nulovém indexu – pozice 1 – prezentace) na index 1 – pozice 2 – prezentace.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace
Presentation pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
// Zkopírujte požadovaný snímek na konec kolekce snímků ve stejné prezentaci
ISlideCollection slds = pres.getSlides();
// Zkopírujte požadovaný snímek na zadaný index ve stejné prezentaci
slds.insertClone(2, pres.getSlides().get_Item(1));
// Uložte upravenou prezentaci na disk
pres.save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Klonovat snímek na konci jiné prezentace
Pokud potřebujete klonovat snímek z jedné prezentace a použít jej v jiné souboru prezentace, na konci existujících snímků:
- Vytvořte instanci třídy Presentation, která obsahuje prezentaci, ze které bude snímek klonován.
- Vytvořte instanci třídy Presentation, která obsahuje cílovou prezentaci, do které bude snímek přidán.
- Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation cílové prezentace.
- Zavolejte metodu addClone vystavenou objektem ISlideCollection a jako parametr předávejte snímek ze zdrojové prezentace metodě addClone.
- Zapište upravený soubor cílové prezentace.
V níže uvedeném příkladu jsme klonovali snímek (z prvního indexu zdrojové prezentace) na konec cílové prezentace.
// Vytvořte instanci třídy Presentation pro načtení zdrojového souboru prezentace
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Vytvořte instanci třídy Presentation pro cílový PPTX (kam bude snímek klonován)
Presentation destPres = new Presentation();
try {
// Zkopírujte požadovaný snímek ze zdrojové prezentace na konec kolekce snímků v cílové prezentaci
ISlideCollection slds = destPres.getSlides();
slds.addClone(srcPres.getSlides().get_Item(0));
// Uložte cílovou prezentaci na disk
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonovat snímek na jiné místo v jiné prezentaci
Pokud potřebujete klonovat snímek z jedné prezentace a použít jej v jiné souboru prezentace, na konkrétním místě:
- Vytvořte instanci třídy Presentation, která obsahuje zdrojovou prezentaci, ze které bude snímek klonován.
- Vytvořte instanci třídy Presentation, která obsahuje prezentaci, do které bude snímek přidán.
- Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation cílové prezentace.
- Zavolejte metodu insertClone vystavenou objektem ISlideCollection a jako parametr předávejte snímek ze zdrojové prezentace spolu s požadovanou pozicí metodě insertClone.
- Zapište upravený soubor cílové prezentace.
V níže uvedeném příkladu jsme klonovali snímek (z nulového indexu zdrojové prezentace) na index 1 (pozice 2) cílové prezentace.
// Vytvořte instanci třídy Presentation pro načtení zdrojového souboru prezentace
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Vytvořte instanci třídy Presentation pro cílový PPTX (kam bude snímek klonován)
Presentation destPres = new Presentation();
try {
// Zkopírujte požadovaný snímek ze zdrojové prezentace na konec kolekce snímků v cílové prezentaci
ISlideCollection slds = destPres.getSlides();
slds.insertClone(2, srcPres.getSlides().get_Item(0));
// Uložte cílovou prezentaci na disk
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonovat snímek na konkrétním místě v jiné prezentaci
Pokud potřebujete klonovat snímek spolu s hlavním snímkem (master slide) z jedné prezentace a použít jej v jiné prezentaci, musíte nejprve klonovat požadovaný hlavní snímek ze zdrojové prezentace do cílové prezentace. Pak tento hlavní snímek použijete pro klonování snímku s hlavním snímkem. Metoda addClone(ISlide, IMasterSlide, boolean) očekává hlavní snímek z cílové prezentace, nikoli ze zdrojové. Pro klonování snímku s hlavním snímkem postupujte podle následujících kroků:
- Vytvořte instanci třídy Presentation, která obsahuje zdrojovou prezentaci, ze které bude snímek klonován.
- Vytvořte instanci třídy Presentation, která obsahuje cílovou prezentaci, do které bude snímek klonován.
- Získejte přístup k snímku, který má být klonován, spolu s hlavním snímkem.
- Instancujte třídu IMasterSlideCollection odkazováním na kolekci Masters vystavenou objektem Presentation cílové prezentace.
- Zavolejte metodu addClone vystavenou objektem IMasterSlideCollection a jako parametr předávejte hlavní snímek ze zdrojového PPTX, který má být klonován, metodě addClone.
- Instancujte třídu ISlideCollection nastavením odkazu na kolekci Slides vystavenou objektem Presentation cílové prezentace.
- Zavolejte metodu addClone vystavenou objektem ISlideCollection a jako parametr předávejte snímek ze zdrojové prezentace, který má být klonován, a hlavní snímek metodě addClone.
- Zapište upravený soubor cílové prezentace.
V níže uvedeném příkladu jsme klonovali snímek s hlavním snímkem (nacházející se na nulovém indexu zdrojové prezentace) na konec cílové prezentace pomocí hlavního snímku ze zdrojového snímku.
// Vytvořte instanci třídy Presentation pro načtení zdrojového souboru prezentace
Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
// Vytvořte instanci třídy Presentation pro cílovou prezentaci (kam bude snímek klonován)
Presentation destPres = new Presentation();
try {
// Vytvořte ISlide ze sbírky snímků ve zdrojové prezentaci spolu s
// hlavním snímkem
ISlide SourceSlide = srcPres.getSlides().get_Item(0);
IMasterSlide SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// Zkopírujte požadovaný hlavní snímek ze zdrojové prezentace do sbírky hlavních snímků v
// cílové prezentaci
IMasterSlideCollection masters = destPres.getMasters();
IMasterSlide DestMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// Zkopírujte požadovaný hlavní snímek ze zdrojové prezentace do sbírky hlavních snímků v
// cílové prezentaci
IMasterSlide iSlide = masters.addClone(SourceMaster);
// Zkopírujte požadovaný snímek ze zdrojové prezentace s požadovaným hlavním snímkem na konec
// sbírky snímků v cílové prezentaci
ISlideCollection slds = destPres.getSlides();
slds.addClone(SourceSlide, iSlide, true);
// Uložte cílovou prezentaci na disk
destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonovat snímek na konci určené sekce
Pokud chcete klonovat snímek a poté jej použít ve stejném souboru prezentace, ale v jiné sekci, použijte metodu addClone vystavenou rozhraním [ISlideCollection]. Aspose.Slides pro Java umožňuje klonovat snímek z první sekce a poté vložit tento klonovaný snímek do druhé sekce stejné prezentace.
Následující úryvek kódu ukazuje, jak klonovat snímek a vložit klonovaný snímek do určité sekce.
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);
// Uložte cílovou prezentaci na disk
presentation.save(dataDir + "CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Často kladené otázky
Klonují se poznámky k řečníkovi a komentáře recenzentů?
Ano. Stránka s poznámkami a recenzní komentáře jsou zahrnuty do klonu. Pokud je nechcete, odstraňte je po vložení.
Jak jsou zpracovány grafy a jejich datové zdroje?
Objekt grafu, jeho formátování a vložená data jsou zkopírována. Pokud byl graf propojen s externím zdrojem (např. se sešitem vloženým jako OLE), toto propojení je zachováno jako OLE objekt. Po přesunu mezi soubory ověřte dostupnost dat a chování aktualizace.
Mohu řídit pozici vložení a sekce pro klon?
Ano. Klon můžete vložit na konkrétní index snímku a umístit jej do vybrané sekce. Pokud cílová sekce neexistuje, nejprve ji vytvořte a poté do ní snímek přesuňte.