Clonar Slides do PowerPoint em Python
Introdução
Clonar é o processo de fazer uma cópia exata ou réplica de algo. Aspose.Slides também permite copiar (clonar) qualquer slide e então inserir o slide clonado na apresentação atual ou em qualquer outra apresentação aberta. A clonagem de slide cria um novo slide que os desenvolvedores podem modificar sem afetar o slide original. Existem várias maneiras de clonar um slide:
- Clonar ao final de uma apresentação.
- Clonar em outra posição dentro de uma apresentação.
- Clonar ao final de outra apresentação.
- Clonar em outra posição em outra apresentação.
- Clonar em uma posição específica em outra apresentação.
No Aspose.Slides for Python via .NET, a slide collection exposta pelo objeto Presentation fornece os métodos add_clone e insert_clone para executar esses tipos de clonagem de slide.
Instalação
pip install aspose.slides
Instalação
Se você quiser clonar um slide dentro da mesma apresentação e anexá‑lo ao final dos slides existentes, use o método add_clone. Siga estas etapas:
- Crie uma instância da classe Apresentação.
- Obtenha a coleção de slides do objeto Apresentação.
- Chame o método
add_clonena SlideCollection, passando o slide a ser clonado. - Salve a apresentação modificada.
No exemplo abaixo, o primeiro slide (índice 0) é clonado e anexado ao final da apresentação.
import aspose.slides as slides
# Instanciar a classe Presentation para representar o arquivo de apresentação.
with slides.Presentation("CloneWithinSamePresentationToEnd.pptx") as presentation:
# Clonar o slide desejado para o final da coleção de slides na mesma apresentação.
presentation.slides.add_clone(presentation.slides[0])
# Salvar a apresentação modificada no disco.
presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", slides.export.SaveFormat.PPTX)
Clonar para uma Posição Específica Dentro da Mesma Apresentação
Se você quiser clonar um slide dentro da mesma apresentação e colocá‑lo em outra posição, use o método insert_clone:
- Crie uma instância da classe Apresentação.
- Obtenha a coleção de slides do objeto Apresentação.
- Chame o método
insert_clonena SlideCollection, passando o slide a ser clonado e o índice de destino para sua nova posição. - Salve a apresentação modificada.
No exemplo abaixo, o slide no índice 1 (posição 2) é clonado para o índice 2 (posição 3) dentro da mesma apresentação.
import aspose.slides as slides
# Instanciar a classe Presentation para representar o arquivo de apresentação.
with slides.Presentation("CloneWithInSamePresentation.pptx") as presentation:
# Clone o slide desejado para a posição (índice) especificada dentro da mesma apresentação.
presentation.slides.insert_clone(2, presentation.slides[1])
# Salvar a apresentação modificada no disco.
presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", slides.export.SaveFormat.PPTX)
Clonar ao Final de Outra Apresentação
Se for necessário clonar um slide de uma apresentação e anexá‑lo ao final de outra apresentação:
- Crie uma instância da classe Apresentação para a apresentação de origem (a que contém o slide a ser clonado).
- Crie uma instância da classe Apresentação para a apresentação de destino (onde o slide será adicionado).
- Obtenha a coleção de slides da apresentação de destino.
- Chame
add_clonena SlideCollection de destino, passando o slide da apresentação de origem. - Salve a apresentação de destino modificada.
No exemplo abaixo, o slide no índice 0 na apresentação de origem é clonado ao final da apresentação de destino.
import aspose.slides as slides
# Instanciar a classe Presentation para representar o arquivo de apresentação de origem.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# Instanciar a classe Presentation para o PPTX de destino (onde o slide será clonado).
with slides.Presentation() as target_presentation:
# Clonar o slide desejado da apresentação de origem para o final da coleção de slides na apresentação de destino.
target_presentation.slides.add_clone(source_presentation.slides[0])
# Salvar a apresentação de destino no disco.
target_presentation.save("Aspose2_out.pptx", slides.export.SaveFormat.PPTX)
Clonar para uma Posição Específica em Outra Apresentação
Se você precisar clonar um slide de uma apresentação e inseri‑lo em outra apresentação em uma posição específica:
- Crie uma instância da classe Apresentação para a apresentação de origem (a que contém o slide a ser clonado).
- Crie uma instância da classe Apresentação para a apresentação de destino (onde o slide será adicionado).
- Obtenha a coleção de slides da apresentação de destino.
- Chame o método
insert_clonena SlideCollection de destino, passando o slide da apresentação de origem e o índice de destino desejado. - Salve a apresentação de destino modificada.
No exemplo abaixo, o slide no índice 0 da apresentação de origem é clonado para o índice 2 (posição 3) na apresentação de destino.
import aspose.slides as slides
# Instanciar a classe Presentation para representar o arquivo de apresentação de origem.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# Instanciar a classe Presentation para o PPTX de destino (onde o slide será clonado).
with slides.Presentation("Aspose2_out.pptx") as target_presentation:
# Insira um clone do primeiro slide da origem no índice 2 da apresentação de destino.
target_presentation.slides.insert_clone(2, source_presentation.slides[0])
# Salvar a apresentação de destino no disco.
target_presentation.save("Aspose3_out.pptx", slides.export.SaveFormat.PPTX)
Clonar um Slide com Seu Slide Mestre em Outra Apresentação
Se você precisar clonar um slide com seu mestre de uma apresentação e usá‑lo em outra, primeiro clone o slide mestre necessário da apresentação de origem para a apresentação de destino. Em seguida, use esse mestre de destino ao clonar o slide. O método add_clone(Slide, MasterSlide) espera um slide mestre da apresentação de destino, não da origem.
Para clonar um slide com seu mestre, siga estas etapas:
- Crie uma instância da classe Presentation para a apresentação de origem (a que contém o slide a ser clonado).
- Crie uma instância da classe Presentation para a apresentação de destino.
- Acesse o slide de origem a ser clonado e seu slide mestre.
- Obtenha a MasterSlideCollection da coleção mestre da apresentação de destino.
- Chame
add_clonena MasterSlideCollection de destino, passando o mestre de origem para cloná‑lo na coleção de destino. - Obtenha a SlideCollection da apresentação de destino.
- Chame
add_clonena SlideCollection de destino, passando o slide de origem e o mestre clonado de destino. - Salve a apresentação de destino modificada.
No exemplo abaixo, o slide no índice 0 na apresentação de origem é clonado ao final da apresentação de destino usando o mestre clonado da origem.
import aspose.slides as slides
# Instanciar a classe Presentation para representar o arquivo de apresentação de origem.
with slides.Presentation("CloneToAnotherPresentationWithMaster.pptx") as source_presentation:
# Instanciar a classe Presentation para a apresentação de destino onde o slide será clonado.
with slides.Presentation() as target_presentation:
# Obter o primeiro slide da apresentação de origem.
source_slide = source_presentation.slides[0]
# Obter o slide mestre usado pelo primeiro slide.
source_master = source_slide.layout_slide.master_slide
# Clonar o slide mestre na coleção de mestres da apresentação de destino.
cloned_master = target_presentation.masters.add_clone(source_master)
# Clonar o slide da apresentação de origem para o final da apresentação de destino usando o mestre clonado.
target_presentation.slides.add_clone(source_slide, cloned_master, True)
# Salvar a apresentação de destino no disco.
target_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", slides.export.SaveFormat.PPTX)
Clonar ao Final em uma Seção Especificada
Com Aspose.Slides for Python via .NET, você pode clonar um slide de uma seção de uma apresentação e inseri‑lo em outra seção dentro da mesma apresentação. Para fazer isso, use o método add_clone(Slide, Section) da classe SlideCollection.
O exemplo Python a seguir mostra como clonar um slide e inserir o clone em uma seção especificada:
import aspose.slides as slides
# Criar uma nova apresentação em branco.
with slides.Presentation() as presentation:
# Adicionar um slide vazio baseado no layout do primeiro slide.
slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# Adicione uma forma de elipse ao novo slide; este slide será clonado mais tarde.
slide.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 150, 150, 100, 100)
# Adicionar outro slide vazio baseado no layout do primeiro slide.
slide2 = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# Crie uma seção chamada "Section2" que começa em slide2.
section = presentation.sections.add_section("Section2", slide2)
# Clonar o slide criado anteriormente na seção "Section2".
presentation.slides.add_clone(slide, section)
# Salve a apresentação como um arquivo PPTP.
presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)
Garantir Tamanho de Slide Compatível
Ao clonar slides para outra apresentação, certifique‑se de que a apresentação de destino tenha o mesmo tamanho de slide da origem. Se os tamanhos de slide diferirem, o Aspose.Slides não redimensiona automaticamente os objetos clonados – suas coordenadas e dimensões originais são preservadas, o que pode fazer com que o conteúdo apareça desalinhado ou extrapole os limites do slide.
Você pode definir o tamanho de slide da apresentação de destino para coincidir com o da origem antes de clonar o mestre e o slide:
source_size = source_presentation.slide_size.size
target_presentation.slide_size.set_size(
source_size.width, source_size.height, slides.SlideSizeScaleType.DO_NOT_SCALE)
Faça isso antes de clonar o mestre e o slide.
FAQ
As notas do apresentador e os comentários dos revisores são clonados?
Sim. A página de notas e os comentários de revisão são incluídos no clone. Se você não quiser them, remove them após a inserção.
Como gráficos e suas fontes de dados são tratados?
O objeto de gráfico, a formatação e os dados incorporados são copiados. Se o gráfico estiver vinculado a uma fonte externa (por exemplo, uma pasta de trabalho incorporada OLE), esse vínculo é mantido como um OLE object. Após mover entre arquivos, verifique a disponibilidade dos dados e o comportamento de atualização.
Posso controlar a posição de inserção e as seções do clone?
Sim. Você pode inserir o clone em um índice de slide específico e colocá‑lo em uma section escolhida. Se a seção de destino não existir, crie‑a primeiro e então mova o slide para ela.