Clona diapositive PowerPoint in Python

Introduzione

Il clonaggio è il processo di creare una copia esatta o una replica di qualcosa. Aspose.Slides consente anche di copiare (clonare) qualsiasi diapositiva e quindi inserire la diapositiva clonata nella presentazione corrente o in qualsiasi altra presentazione aperta. Il clonaggio di diapositive crea una nuova diapositiva che gli sviluppatori possono modificare senza influire sulla diapositiva originale. Esistono diversi modi per clonare una diapositiva:

  • Clona alla fine di una presentazione.
  • Clona in un’altra posizione all’interno di una presentazione.
  • Clona alla fine di un’altra presentazione.
  • Clona in un’altra posizione in un’altra presentazione.
  • Clona in una posizione specifica in un’altra presentazione.

In Aspose.Slides per Python via .NET, la collezione di diapositive esposta dall’oggetto Presentation fornisce i metodi add_clone e insert_clone per eseguire questi tipi di clonazione di diapositive.

Installazione

pip install aspose.slides

Clona alla fine nella stessa presentazione

Se desideri clonare una diapositiva all’interno della stessa presentazione e aggiungerla alla fine delle diapositive esistenti, usa il metodo add_clone. Segui questi passaggi:

  1. Crea un’istanza della classe Presentation.
  2. Ottieni la collezione di diapositive dall’oggetto Presentation.
  3. Chiama il metodo add_clone sulla SlideCollection, passando la diapositiva da clonare.
  4. Salva la presentazione modificata.

Nell’esempio seguente, la prima diapositiva (indice 0) viene clonata e aggiunta alla fine della presentazione.

import aspose.slides as slides

# Instanziare la classe Presentation per rappresentare il file della presentazione.
with slides.Presentation("CloneWithinSamePresentationToEnd.pptx") as presentation:
    # Clonare la diapositiva desiderata alla fine della collezione di diapositive nella stessa presentazione.
    presentation.slides.add_clone(presentation.slides[0])
    # Salvare la presentazione modificata su disco.
    presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", slides.export.SaveFormat.PPTX)

Clona in una posizione specifica nella stessa presentazione

Se desideri clonare una diapositiva all’interno della stessa presentazione e posizionarla in una posizione diversa, usa il metodo insert_clone:

  1. Crea un’istanza della classe Presentation.
  2. Ottieni la collezione di diapositive dall’oggetto Presentation.
  3. Chiama il metodo insert_clone sulla SlideCollection, passando la diapositiva da clonare e l’indice target per la sua nuova posizione.
  4. Salva la presentazione modificata.

Nell’esempio seguente, la diapositiva all’indice 1 (posizione 2) viene clonata all’indice 2 (posizione 3) all’interno della stessa presentazione.

import aspose.slides as slides

# Instanzia la classe Presentation per rappresentare il file della presentazione.
with slides.Presentation("CloneWithInSamePresentation.pptx") as presentation:
    # Clonare la diapositiva desiderata nella posizione (indice) specificata all'interno della stessa presentazione.
    presentation.slides.insert_clone(2, presentation.slides[1])
    # Salvare la presentazione modificata su disco.
    presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", slides.export.SaveFormat.PPTX)

Clona alla fine di un’altra presentazione

Se devi clonare una diapositiva da una presentazione e aggiungerla alla fine di un’altra presentazione:

  1. Crea un’istanza della classe Presentation per la presentazione di origine (quella che contiene la diapositiva da clonare).
  2. Crea un’istanza della classe Presentation per la presentazione di destinazione (dove verrà aggiunta la diapositiva).
  3. Ottieni la collezione di diapositive dalla presentazione di destinazione.
  4. Chiama add_clone sulla SlideCollection di destinazione, passando la diapositiva dalla presentazione di origine.
  5. Salva la presentazione di destinazione modificata.

Nell’esempio seguente, la diapositiva all’indice 0 nella presentazione di origine viene clonata alla fine della presentazione di destinazione.

import aspose.slides as slides

# Instanzia la classe Presentation per rappresentare il file della presentazione di origine.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
    # Instanzia la classe Presentation per il PPTX di destinazione (dove la diapositiva verrà clonata).
    with slides.Presentation() as target_presentation:
        # Clonare la diapositiva desiderata dalla presentazione di origine alla fine della collezione di diapositive nella presentazione di destinazione.
        target_presentation.slides.add_clone(source_presentation.slides[0])
        # Salvare la presentazione di destinazione su disco.
        target_presentation.save("Aspose2_out.pptx", slides.export.SaveFormat.PPTX)

Clona in una posizione specifica in un’altra presentazione

Se devi clonare una diapositiva da una presentazione e inserirla in un’altra presentazione in una posizione specifica:

  1. Crea un’istanza della classe Presentation per la presentazione di origine (quella che contiene la diapositiva da clonare).
  2. Crea un’istanza della classe Presentation per la presentazione di destinazione (dove verrà aggiunta la diapositiva).
  3. Ottieni la collezione di diapositive dalla presentazione di destinazione.
  4. Chiama il metodo insert_clone sulla SlideCollection di destinazione, passando la diapositiva dalla presentazione di origine e l’indice target desiderato.
  5. Salva la presentazione di destinazione modificata.

Nell’esempio seguente, la diapositiva all’indice 0 nella presentazione di origine viene clonata all’indice 2 (posizione 3) nella presentazione di destinazione.

import aspose.slides as slides

# Instanzia la classe Presentation per rappresentare il file della presentazione di origine.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
    # Instanzia la classe Presentation per il PPTX di destinazione (dove la diapositiva deve essere clonata).
    with slides.Presentation("Aspose2_out.pptx") as target_presentation:
        # Inserisci una copia della prima diapositiva dalla presentazione di origine all'indice 2 nella presentazione di destinazione.
        target_presentation.slides.insert_clone(2, source_presentation.slides[0])
        # Salvare la presentazione di destinazione su disco.
        target_presentation.save("Aspose3_out.pptx", slides.export.SaveFormat.PPTX)

Clona una diapositiva con la sua diapositiva master in un’altra presentazione

Se è necessario clonare una diapositiva con il suo master da una presentazione e usarla in un’altra, prima clona la diapositiva master necessaria dalla presentazione di origine nella presentazione di destinazione. Quindi utilizza quel master di destinazione durante la clonazione della diapositiva. Il metodo add_clone(Slide, MasterSlide) si aspetta una diapositiva master dalla presentazione di destinazione, non dall’origine.

Per clonare una diapositiva con il suo master, segui questi passaggi:

  1. Crea un’istanza della classe Presentation per la presentazione di origine (quella che contiene la diapositiva da clonare).
  2. Crea un’istanza della classe Presentation per la presentazione di destinazione.
  3. Accedi alla diapositiva di origine da clonare e al suo master.
  4. Ottieni la MasterSlideCollection dalla collezione master della presentazione di destinazione.
  5. Chiama add_clone sulla MasterSlideCollection di destinazione, passando il master di origine per clonarlo nella destinazione.
  6. Ottieni la SlideCollection dalla collezione di diapositive della presentazione di destinazione.
  7. Chiama add_clone sulla SlideCollection di destinazione, passando la diapositiva di origine e il master di destinazione clonato.
  8. Salva la presentazione di destinazione modificata.

Nell’esempio seguente, la diapositiva all’indice 0 nella presentazione di origine viene clonata alla fine della presentazione di destinazione usando il master clonato dall’origine.

import aspose.slides as slides

# Instanzia la classe Presentation per rappresentare il file della presentazione di origine.
with slides.Presentation("CloneToAnotherPresentationWithMaster.pptx") as source_presentation:
    # Instanzia la classe Presentation per la presentazione di destinazione dove la diapositiva verrà clonata.
    with slides.Presentation() as target_presentation:
        # Ottenere la prima diapositiva dalla presentazione di origine.
        source_slide = source_presentation.slides[0]
        # Ottieni la diapositiva master utilizzata dalla prima diapositiva.
        source_master = source_slide.layout_slide.master_slide
        # Clona la diapositiva master nella collezione master della presentazione di destinazione.
        cloned_master = target_presentation.masters.add_clone(source_master)
        # Clonare la diapositiva dalla presentazione di origine alla fine della presentazione di destinazione usando il master clonato.
        target_presentation.slides.add_clone(source_slide, cloned_master, True)
        # Salvare la presentazione di destinazione su disco.
        target_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", slides.export.SaveFormat.PPTX)

Clona alla fine in una sezione specificata

Con Aspose.Slides per Python via .NET, puoi clonare una diapositiva da una sezione di una presentazione e inserirla in un’altra sezione all’interno della stessa presentazione. Per farlo, utilizza il metodo add_clone(Slide, Section) della classe SlideCollection.

Il seguente esempio Python mostra come clonare una diapositiva e inserire il clone in una sezione specificata:

import aspose.slides as slides

# Creare una nuova presentazione vuota.
with slides.Presentation() as presentation:
    # Aggiungere una diapositiva vuota basata sul layout della prima diapositiva.
    slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
    # Aggiungere una forma ellisse alla nuova diapositiva; questa diapositiva sarà clonata in seguito.
    slide.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 150, 150, 100, 100)
    # Aggiungere un'altra diapositiva vuota basata sul layout della prima diapositiva.
    slide2 = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
    # Crea una sezione denominata "Section2" che inizia con slide2.
    section = presentation.sections.add_section("Section2", slide2)
    # Clonare la diapositiva creata in precedenza nella sezione "Section2".
    presentation.slides.add_clone(slide, section)
    # Salvare la presentazione come file PPTX.
    presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)

Assicurarsi che le dimensioni della diapositiva corrispondano

Quando cloni diapositive in un’altra presentazione, assicurati che la presentazione di destinazione abbia le stesse dimensioni della diapositiva della presentazione di origine. Se le dimensioni differiscono, Aspose.Slides non ridimensiona automaticamente le forme clonate: le loro coordinate e dimensioni originali vengono preservate, il che può far apparire il contenuto disallineato o al di fuori dei bordi della diapositiva.

Puoi impostare la dimensione della diapositiva della presentazione di destinazione per farla corrispondere a quella di origine prima di clonare il master e la diapositiva:

source_size = source_presentation.slide_size.size

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

Fallo prima di clonare il master e la diapositiva.

FAQ

Le note del relatore e i commenti del revisore vengono clonati?

Sì. La pagina delle note e i commenti di revisione sono inclusi nella copia. Se non li desideri, rimuovili dopo l’inserimento.

Come vengono gestiti i grafici e le loro origini dati?

L’oggetto grafico, la formattazione e i dati incorporati vengono copiati. Se il grafico era collegato a una fonte esterna (ad es., una cartella di lavoro OLE incorporata), quel collegamento viene preservato come un OLE object. Dopo lo spostamento tra file, verifica la disponibilità dei dati e il comportamento di aggiornamento.

Posso controllare la posizione di inserimento e le sezioni per la copia?

Sì. Puoi inserire il clone in un indice di diapositiva specifico e posizionarlo in una sezione scelta. Se la sezione di destinazione non esiste, creala prima e poi sposta la diapositiva al suo interno.