Klonování snímků prezentace v .NET

Úvod

Klónování je proces vytváření přesné kopie nebo repliky něčeho. Aspose.Slides také umožňuje zkopírovat (klonovat) libovolný snímek a poté vložit klonovaný snímek do aktuální prezentace nebo jakékoli jiné otevřené prezentace. Klonování snímků vytváří nový snímek, který mohou vývojáři upravovat, aniž by ovlivnili původní snímek. Existuje několik způsobů, jak klonovat snímek:

  • Klónovat na konci prezentace.
  • Klónovat na jiné pozici v rámci prezentace.
  • Klónovat na konci jiné prezentace.
  • Klónovat na jiné pozici v jiné prezentaci.
  • Klónovat na konkrétní pozici v jiné prezentaci.

V Aspose.Slides pro .NET poskytuje kolekce snímků (kolekce objektů ISlide) vystavená objektem Presentation metody AddClone a InsertClone pro provedení výše popsaných operací 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 kroků uvedených níže:

  1. Vytvořte instanci třídy Presentation.
  2. Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation.
  3. Zavolejte metodu AddClone vystavenou objektem ISlideCollection, a předávejte snímek, který má být klonován, jako parametr metodě AddClone.
  4. Uložte upravený soubor prezentace.

V níže uvedeném příkladu jsme klonovali snímek (nacházející se na první pozici – index nula – v prezentaci) na konec prezentace.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx"))
{

    // Klonovat požadovaný snímek na konec kolekce snímků ve stejné prezentaci
    ISlideCollection slds = pres.Slides;

    slds.AddClone(pres.Slides[0]);

    // Uložit upravenou prezentaci na disk
    pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);

}

Klonovat snímek na jinou pozici v rámci prezentace

Pokud chcete klonovat snímek a poté jej použít ve stejném souboru prezentace, ale na jiné pozici, použijte metodu InsertClone:

  1. Vytvořte instanci třídy Presentation.
  2. Instancujte třídu odkazováním na kolekci Slides vystavenou objektem Presentation.
  3. Zavolejte metodu InsertClone vystavenou objektem ISlideCollection a předávejte snímek, který má být klonován, spolu s indexem nové pozice jako parametr metodě InsertClone.
  4. Uložte upravenou prezentaci jako soubor PPTX.

V níže uvedeném příkladu jsme klonovali snímek (nacházející se na indexu nula – pozice 1 – v prezentaci) na index 1 – pozice 2 – v prezentaci.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace
using (Presentation pres = new Presentation("CloneWithInSamePresentation.pptx"))
{

    // Klonovat požadovaný snímek na konec kolekce snímků ve stejné prezentaci
    ISlideCollection slds = pres.Slides;

    // Klonovat požadovaný snímek na zadaný index ve stejné prezentaci
    slds.InsertClone(2, pres.Slides[1]);

    // Uložit upravenou prezentaci na disk
    pres.Save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);

}

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ů:

  1. Vytvořte instanci třídy Presentation, která obsahuje prezentaci, ze které bude snímek klonován.
  2. Vytvořte instanci třídy Presentation, která obsahuje cílovou prezentaci, do které bude snímek přidán.
  3. Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation cílové prezentace.
  4. Zavolejte metodu AddClone vystavenou objektem ISlideCollection a předávejte snímek ze zdrojové prezentace jako parametr metodě AddClone.
  5. Uložte upravený soubor cílové prezentace.

V níže uvedeném příkladu jsme klonovali snímek (z první pozice zdrojové prezentace) na konec cílové prezentace.

// Vytvořte instanci třídy Presentation pro načtení zdrojového souboru prezentace
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
    // Vytvořte instanci třídy Presentation pro cílový PPTX (kam bude snímek klonován)
    using (Presentation destPres = new Presentation())
    {
        // Klonovat požadovaný snímek ze zdrojové prezentace na konec kolekce snímků v cílové prezentaci
        ISlideCollection slds = destPres.Slides;

        slds.AddClone(srcPres.Slides[0]);

        // Uložit cílovou prezentaci na disk
        destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
    }
}

Klonovat snímek na jinou pozici v jiné prezentaci

Pokud potřebujete klonovat snímek z jedné prezentace a použít jej v jiné souboru prezentace, na konkrétní pozici:

  1. Vytvořte instanci třídy Presentation, která obsahuje zdrojovou prezentaci, ze které bude snímek klonován.
  2. Vytvořte instanci třídy Presentation, která obsahuje prezentaci, do které bude snímek přidán.
  3. Instancujte třídu ISlideCollection odkazováním na kolekci Slides vystavenou objektem Presentation cílové prezentace.
  4. Zavolejte metodu InsertClone vystavenou objektem ISlideCollection a předávejte snímek ze zdrojové prezentace spolu s požadovanou pozicí jako parametr metodě InsertClone.
  5. Uložte upravený soubor cílové prezentace.

V níže uvedeném příkladu jsme klonovali snímek (z indexu nula zdrojové prezentace) na index 1 (pozice 2) cílové prezentace.

// Vytvořte instanci třídy Presentation pro načtení zdrojového souboru prezentace
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
    // Vytvořte instanci třídy Presentation pro cílový PPTX (kam bude snímek klonován)
    using (Presentation destPres = new Presentation())
    {
        ISlideCollection slds = destPres.Slides;

        slds.InsertClone(2, srcPres.Slides[0]);

        // Uložit cílovou prezentaci na disk
        destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
    }
}

Klonovat snímek na konkrétní pozici v jiné prezentaci

Pokud potřebujete klonovat snímek s hlavním snímkem (master slide) z jedné prezentace a použít jej v jiné prezentaci, nejprve musíte klonovat požadovaný hlavní snímek ze zdrojové prezentace do cílové prezentace. Poté musíte tento hlavní snímek použít pro klonování snímku s hlavním snímkem. Metoda AddClone(ISlide, IMasterSlide) 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ů:

  1. Vytvořte instanci třídy Presentation obsahující zdrojovou prezentaci, ze které bude snímek klonován.
  2. Vytvořte instanci třídy Presentation obsahující cílovou prezentaci, do které bude snímek klonován.
  3. Přistupte k snímku, který má být klonován, spolu s hlavním snímkem.
  4. Instancujte třídu IMasterSlideCollection odkazováním na kolekci Masters vystavenou objektem Presentation cílové prezentace.
  5. Zavolejte metodu AddClone vystavenou objektem IMasterSlideCollection a předávejte hlavní snímek ze zdrojového PPTX jako parametr metodě AddClone.
  6. Instancujte třídu ISlideCollection nastavením reference na kolekci Slides vystavenou objektem Presentation cílové prezentace.
  7. Zavolejte metodu AddClone vystavenou objektem ISlideCollection a předávejte snímek ze zdrojové prezentace k klonování a hlavní snímek jako parametr metodě AddClone.
  8. Ulož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 indexu nula 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

using (Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx"))
{
    // Vytvořte instanci třídy Presentation pro cílovou prezentaci (kam bude snímek klonován)
    using (Presentation destPres = new Presentation())
    {

        // Vytvořte ISlide ze sady snímků ve zdrojové prezentaci spolu s
        // hlavním snímkem
        ISlide SourceSlide = srcPres.Slides[0];
        IMasterSlide SourceMaster = SourceSlide.LayoutSlide.MasterSlide;

        // Klonovat požadovaný hlavní snímek ze zdrojové prezentace do kolekce hlavních snímků v
        // cílové prezentaci
        IMasterSlideCollection masters = destPres.Masters;
        IMasterSlide DestMaster = SourceSlide.LayoutSlide.MasterSlide;

        // Klonovat požadovaný hlavní snímek ze zdrojové prezentace do kolekce hlavních snímků v
        // cílové prezentaci
        IMasterSlide iSlide = masters.AddClone(SourceMaster);

        // Klonovat požadovaný snímek ze zdrojové prezentace s požadovaným hlavním snímkem na konec
        // kolekce snímků v cílové prezentaci
        ISlideCollection slds = destPres.Slides;
        slds.AddClone(SourceSlide, iSlide, true);
      
        // Klonovat požadovaný hlavní snímek ze zdrojové prezentace do kolekce hlavních snímků v // cílové prezentaci
        // Uložit cílovou prezentaci na disk
        destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);

    }
}

Klonovat snímek na konci určené sekce

S Aspose.Slides pro .NET můžete klonovat snímek z jedné sekce prezentace a vložit tento snímek do jiné sekce ve stejné prezentaci. V tomto případě musíte použít metodu AddClone z rozhraní ISlideCollection.

Tento kód v C# ukazuje, jak klonovat snímek a vložit klonovaný snímek do určené sekce:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
    slide.Shapes.AddAutoShape(ShapeType.Ellipse, 150, 150, 100, 100); // pro klonování
    
    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);
}

Často kladené otázky

Klonují se poznámky přednášejícího 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 zacházeno s grafy a jejich datovými zdroji?

Objekt grafu, 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í obnovy.

Mohu ovládat 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.