Klonovat snímky PowerPoint v Pythonu

Úvod

Klónování je proces vytvoř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:

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

V Aspose.Slides pro Python prostřednictvím .NET poskytuje slide collection vystavená objektem Presentation metody add_clone a insert_clone pro provádění těchto typů klonování snímků.

Instalace

pip install aspose.slides

Instalace

pip install aspose.slides

Installation

pip install aspose.slides

Klonování na konci ve stejné prezentaci

Pokud chcete klonovat snímek ve stejné prezentaci a připojit jej na konec existujících snímků, použijte metodu add_clone. Postupujte podle následujících kroků:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte kolekci snímků z objektu Presentation.
  3. Zavolejte metodu add_clone na SlideCollection a předáte snímek, který má být klonován.
  4. Uložte upravenou prezentaci.

V níže uvedeném příkladu je první snímek (index 0) klonován a připojen na konec prezentace.

import aspose.slides as slides

# Vytvoří instanci třídy Presentation, která představuje soubor prezentace.
with slides.Presentation("CloneWithinSamePresentationToEnd.pptx") as presentation:
    # Naklonujte požadovaný snímek na konec kolekce snímků ve stejné prezentaci.
    presentation.slides.add_clone(presentation.slides[0])
    # Uloží upravenou prezentaci na disk.
    presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", slides.export.SaveFormat.PPTX)

Klonování na konkrétní pozici ve stejné prezentaci

Pokud chcete klonovat snímek ve stejné prezentaci a umístit jej na jinou pozici, použijte metodu insert_clone:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte kolekci snímků z objektu Presentation.
  3. Zavolejte metodu insert_clone na SlideCollection a předáte snímek, který má být klonován, a cílový index pro jeho novou pozici.
  4. Uložte upravenou prezentaci.

V níže uvedeném příkladu je snímek na indexu 1 (pozice 2) klonován na index 2 (pozice 3) ve stejné prezentaci.

import aspose.slides as slides

# Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
with slides.Presentation("CloneWithInSamePresentation.pptx") as presentation:
    # Naklonujte požadovaný snímek na určenou pozici (index) ve stejné prezentaci.
    presentation.slides.insert_clone(2, presentation.slides[1])
    # Uloží upravenou prezentaci na disk.
    presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", slides.export.SaveFormat.PPTX)

Klonování na konci jiné prezentace

Pokud potřebujete klonovat snímek z jedné prezentace a připojit jej na konec jiné prezentace:

  1. Vytvořte instanci třídy Presentation pro zdrojovou prezentaci (tu, která obsahuje snímek k klonování).
  2. Vytvořte instanci třídy Presentation pro cílovou prezentaci (kde bude snímek přidán).
  3. Získejte kolekci snímků z cílové prezentace.
  4. Zavolejte add_clone na cílové SlideCollection a předáte snímek ze zdrojové prezentace.
  5. Uložte upravenou cílovou prezentaci.

V níže uvedeném příkladu je snímek na indexu 0 ve zdrojové prezentaci klonován na konec cílové prezentace.

import aspose.slides as slides

# Vytvořte instanci třídy Presentation, která představuje zdrojový soubor prezentace.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
    # Vytvořte instanci třídy Presentation pro cílový PPTX (kde bude snímek klonován).
    with slides.Presentation() as target_presentation:
        # Naklonujte požadovaný snímek ze zdrojové prezentace na konec kolekce snímků v cílové prezentaci.
        target_presentation.slides.add_clone(source_presentation.slides[0])
        # Uložte cílovou prezentaci na disk.
        target_presentation.save("Aspose2_out.pptx", slides.export.SaveFormat.PPTX)

Klonování na konkrétní pozici v jiné prezentaci

Pokud potřebujete klonovat snímek z jedné prezentace a vložit jej do jiné prezentace na konkrétní pozici:

  1. Vytvořte instanci třídy Presentation pro zdrojovou prezentaci (tu, která obsahuje snímek k klonování).
  2. Vytvořte instanci třídy Presentation pro cílovou prezentaci (kde bude snímek přidán).
  3. Získejte kolekci snímků z cílové prezentace.
  4. Zavolejte metodu insert_clone na cílové SlideCollection a předáte snímek ze zdrojové prezentace a požadovaný cílový index.
  5. Uložte upravenou cílovou prezentaci.

V níže uvedeném příkladu je snímek na indexu 0 ve zdrojové prezentaci klonován na index 2 (pozice 3) v cílové prezentaci.

import aspose.slides as slides

# Vytvořte instanci třídy Presentation, která představuje zdrojový soubor prezentace.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
    # Vytvořte instanci třídy Presentation pro cílový PPTX (kde bude snímek klonován).
    with slides.Presentation("Aspose2_out.pptx") as target_presentation:
        # Vložte klon prvního snímku ze zdroje na index 2 v cílové prezentaci.
        target_presentation.slides.insert_clone(2, source_presentation.slides[0])
        # Uložte cílovou prezentaci na disk.
        target_presentation.save("Aspose3_out.pptx", slides.export.SaveFormat.PPTX)

Klonovat snímek s jeho hlavním snímkem (master) do jiné prezentace

Pokud potřebujete klonovat snímek s jeho hlavním snímkem z jedné prezentace a použít jej v jiné, nejprve klonujte požadovaný hlavní snímek ze zdrojové prezentace do cílové prezentace. Poté použijte tento cílový hlavní snímek při klonování snímku. Metoda add_clone(Slide, MasterSlide) očekává hlavní snímek z cílové prezentace, ne ze zdrojové.

Pro klonování snímku s jeho hlavním snímkem postupujte podle následujících kroků:

  1. Vytvořte instanci třídy Presentation pro zdrojovou prezentaci (ta, která obsahuje snímek k klonování).
  2. Vytvořte instanci třídy Presentation pro cílovou prezentaci.
  3. Získejte přístup k výstupnímu snímku, který má být klonován, a k jeho hlavnímu snímku.
  4. Získejte MasterSlideCollection z kolekce hlavních snímků cílové prezentace.
  5. Zavolejte add_clone na cílové MasterSlideCollection a předáte zdrojový hlavní snímek, aby byl klonován do cíle.
  6. Získejte SlideCollection z kolekce snímků cílové prezentace.
  7. Zavolejte add_clone na cílové SlideCollection a předáte zdrojový snímek a klonovaný cílový hlavní snímek.
  8. Uložte upravenou cílovou prezentaci.

V níže uvedeném příkladu je snímek na indexu 0 ve zdrojové prezentaci klonován na konec cílové prezentace pomocí hlavního snímku klonovaného ze zdroje.

import aspose.slides as slides

# Vytvořte instanci třídy Presentation, která představuje zdrojový soubor prezentace.
with slides.Presentation("CloneToAnotherPresentationWithMaster.pptx") as source_presentation:
    # Vytvořte instanci třídy Presentation pro cílovou prezentaci, kde bude snímek klonován.
    with slides.Presentation() as target_presentation:
        # Získejte první snímek ze zdrojové prezentace.
        source_slide = source_presentation.slides[0]
        # Získejte hlavní snímek použitého prvním snímkem.
        source_master = source_slide.layout_slide.master_slide
        # Naklonujte hlavní snímek do kolekce hlavních snímků cílové prezentace.
        cloned_master = target_presentation.masters.add_clone(source_master)
        # Naklonujte snímek ze zdrojové prezentace na konec cílové prezentace pomocí klonovaného hlavního snímku.
        target_presentation.slides.add_clone(source_slide, cloned_master, True)
        # Uložte cílovou prezentaci na disk.
        target_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", slides.export.SaveFormat.PPTX)

Klonovat na konci v určené sekci

S Aspose.Slides pro Python prostřednictvím .NET můžete klonovat snímek z jedné sekce prezentace a vložit jej do jiné sekce ve stejné prezentaci. K tomu použijte metodu add_clone(Slide, Section) třídy SlideCollection.

Následující příklad v Pythonu ukazuje, jak klonovat snímek a vložit klon do určené sekce:

import aspose.slides as slides

# Vytvořte novou prázdnou prezentaci.
with slides.Presentation() as presentation:
    # Přidejte prázdný snímek na základě rozvržení prvního snímku.
    slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
    # Přidejte eliptický tvar do nového snímku; tento snímek bude později klonován.
    slide.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 150, 150, 100, 100)
    # Přidejte další prázdný snímek na základě rozvržení prvního snímku.
    slide2 = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
    # Vytvořte sekci s názvem "Section2", která začíná na slide2.
    section = presentation.sections.add_section("Section2", slide2)
    # Naklonujte dříve vytvořený snímek do sekce "Section2".
    presentation.slides.add_clone(slide, section)
    # Uložte prezentaci jako soubor PPTX.
    presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)

Zajistit shodnou velikost snímku

Při klonování snímků do jiné prezentace se ujistěte, že cílová prezentace má stejnou velikost snímku jako zdrojová. Pokud se velikosti snímků liší, Aspose.Slides automaticky nepřepočítá velikost klonovaných tvarů – jejich původní souřadnice a rozměry jsou zachovány, což může způsobit, že obsah bude vypadat nesprávně zarovnaný nebo přesáhne hranice snímku.

Můžete nastavit velikost snímku cílové prezentace tak, aby odpovídala zdrojové, před klonováním hlavního snímku a snímku:

source_size = source_presentation.slide_size.size

target_presentation.slide_size.set_size(
    source_size.width, source_size.height, slides.SlideSizeScaleType.DO_NOT_SCALE)

Udělejte to před klonováním hlavního snímku a snímku.

Často kladené otázky

Klonují se poznámky přednášejícího a komentáře recenzentů?

Ano. Stránka s poznámkami a komentáře recenzentů jsou zahrnuty do klonu. Pokud je nechcete, odeberte je po vložení.

Jak jsou zpracovány grafy a jejich zdroje dat?

Objekt grafu, jeho formátování a vložená data jsou zkopírovány. 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í při obnově.

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 pak do ní snímek přesunujte.