Salvar apresentações em Python
Visão geral
Depois de criar uma apresentação ou abrir uma existente, use o método Presentation.save para gravar o resultado. Aspose.Slides for Python via .NET pode salvar uma apresentação em um arquivo ou fluxo nos formatos PowerPoint, OpenDocument, PDF e outros. As seções a seguir abordam as operações padrão de salvamento e as opções disponíveis para saída PPTX.
Salvar apresentações em arquivos
Para salvar uma apresentação em um arquivo, passe o caminho de saída e um valor SaveFormat ao método Presentation.save. O valor do formato determina o tipo de arquivo que o Aspose.Slides cria.
O exemplo a seguir cria uma apresentação e a salva como um arquivo PPTX:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Adicionar ou modificar o conteúdo da apresentação aqui.
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX)
Salvar apresentações no formato original
Para exemplos de detecção de arquivos e fluxos, o comportamento de apresentações recém‑criadas e a distinção entre formatos de origem e de saída, veja Determinar o formato original da apresentação.
Em um aplicativo de processamento em lote, o formato de entrada pode não ser conhecido antecipadamente. Depois de carregar um arquivo, leia seu formato original a partir da propriedade Presentation.source_format. Passe o valor resultante de SourceFormat para SlideUtil.to_save_format a fim de obter o valor correspondente de SaveFormat, e então use Presentation.save para gravar a apresentação modificada.
O exemplo completo a seguir processa cada arquivo em um diretório de entrada, atualiza seu título e o salva em um diretório de saída no formato em que foi carregado:
from pathlib import Path
import aspose.slides as slides
from aspose.slides.util import SlideUtil
input_directory = Path("Input")
output_directory = Path("Output")
output_directory.mkdir(exist_ok=True)
for input_path in input_directory.iterdir():
if not input_path.is_file():
continue
try:
with slides.Presentation(str(input_path)) as presentation:
source_format = presentation.source_format
save_format = SlideUtil.to_save_format(source_format)
presentation.document_properties.title = "Processed by the batch application"
output_path = output_directory / input_path.name
presentation.save(str(output_path), save_format)
except Exception as exception:
print(f"Cannot process '{input_path}': {exception}")
SlideUtil.to_save_format mapeia PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP e PowerPoint XML para seus respectivos formatos de salvamento de apresentação. Ele mapeia apenas formatos de origem da apresentação; não se destina a selecionar formatos de exportação como PDF, HTML, TIFF ou imagens. Passar um valor de SourceFormat não suportado ou inválido gera uma exceção.
Arquivos legados PPT, PPS e POT usam o mesmo contêiner binário. Quando tal apresentação é carregada a partir de um fluxo sem extensão de arquivo, um arquivo PPS ou POT pode, portanto, ser identificado como PPT. Se for necessário preservar esses subtipos legados, retenha o nome original do arquivo ou os metadados de formato separadamente e use‑os ao escolher o nome e o formato do arquivo de saída.
Salvar apresentações em fluxos
Para gravar uma apresentação sem depender de um caminho de arquivo final, passe um fluxo BinaryIO gravável e um valor SaveFormat ao método Presentation.save. Essa abordagem é útil quando a saída deve ser retornada de um serviço web, armazenada em um banco de dados ou processada na memória.
O exemplo a seguir salva uma nova apresentação em um fluxo de arquivo:
import aspose.slides as slides
with slides.Presentation() as presentation:
with open("Output.pptx", "wb") as output_stream:
presentation.save(output_stream, slides.export.SaveFormat.PPTX)
Salvar apresentações com um tipo de visualização predefinido
É possível especificar a visualização na qual o PowerPoint abre inicialmente uma apresentação salva. Defina a propriedade ViewProperties.last_view para um valor ViewType antes de salvar.
O exemplo a seguir configura a visualização Mestre de Slides como visualização inicial:
import aspose.slides as slides
with slides.Presentation() as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("SlideMasterView.pptx", slides.export.SaveFormat.PPTX)
Salvar apresentações no formato Strict Office Open XML
Para criar um arquivo PPTX que esteja em conformidade com o perfil Strict do Office Open XML, crie uma instância de PptxOptions e defina sua propriedade conformance como Conformance.ISO_29500_2008_STRICT. Em seguida, passe as opções ao método Presentation.save.
import aspose.slides as slides
options = slides.export.PptxOptions()
options.conformance = slides.export.Conformance.ISO_29500_2008_STRICT
with slides.Presentation() as presentation:
presentation.save("StrictOfficeOpenXml.pptx", slides.export.SaveFormat.PPTX, options)
Salvar apresentações no formato Office Open XML no modo Zip64
Um arquivo ZIP padrão limita o tamanho compactado e descompactado de cada entrada, o tamanho total do arquivo e o número de entradas. Como um arquivo PPTX é um arquivo ZIP, uma apresentação muito grande pode exceder esses limites. As extensões ZIP64 aumentam os limites de tamanho e contagem de entradas aplicáveis.
Use a propriedade PptxOptions.zip_64_mode para controlar se o Aspose.Slides grava extensões ZIP64:
IF_NECESSARYusa ZIP64 somente quando a apresentação excede os limites padrão de ZIP. Este é o modo padrão.NEVERdesabilita as extensões ZIP64.ALWAYSgrava sempre as extensões ZIP64.
O exemplo a seguir habilita sempre as extensões ZIP64 para a apresentação de saída:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.zip_64_mode = slides.export.Zip64Mode.ALWAYS
presentation.save("OutputZip64.pptx", slides.export.SaveFormat.PPTX, options)
Warning
SeZip64Mode.NEVER for usado e a apresentação não couber dentro dos limites padrão de ZIP, a operação de salvamento gera uma PptxException.
Salvar apresentações no formato Office Open XML com níveis de compressão
Para saída PPTX, você pode equilibrar a velocidade de gravação com o tamanho do arquivo definindo a propriedade PptxOptions.compression_level. A enumeração CompressionLevel fornece os seguintes valores:
NONEarmazena os dados sem compressão.LEVEL1oferece a compressão mais rápida e a maior saída compactada.LEVEL2aLEVEL5favorecem progressivamente uma saída menor em detrimento da velocidade de gravação.LEVEL6equilibra velocidade de gravação e tamanho do arquivo. Este é o nível padrão.LEVEL7eLEVEL8favorecem ainda mais uma saída menor em detrimento da velocidade de gravação.LEVEL9oferece a compressão mais forte e requer mais tempo de processamento.
O exemplo a seguir salva uma apresentação sem compressão:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.NONE
presentation.save("OutputNoCompression.pptx", slides.export.SaveFormat.PPTX, options)
O exemplo a seguir usa o nível máximo de compressão:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.LEVEL9
presentation.save("OutputMaximumCompression.pptx", slides.export.SaveFormat.PPTX, options)
Salvar apresentações sem atualizar a miniatura
Quando uma apresentação é salva como PPTX, a propriedade PptxOptions.refresh_thumbnail controla sua miniatura de documento:
Trueregenera a miniatura durante a operação de salvamento. Este é o valor padrão.Falsepreserva a miniatura existente. Se a apresentação não possuir miniatura, o Aspose.Slides não gera uma.
O exemplo a seguir salva uma apresentação sem atualizar sua miniatura:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.refresh_thumbnail = False
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX, options)
Note
Desativar a atualização da miniatura pode reduzir o tempo necessário para salvar um arquivo PPTX.Note
A Aspose oferece um PowerPoint Splitter gratuito construído com a API Aspose.Slides. Ele salva slides selecionados de uma apresentação como arquivos PPT ou PPTX separados.FAQ
O Aspose.Slides suporta salvamento incremental ou “salvamento rápido”?
Não. Cada operação de salvamento grava um arquivo de saída completo em vez de atualizar apenas as partes alteradas.
Vários threads podem salvar a mesma instância de Presentation?
Não. Uma instância de Presentation não é thread‑safe (/slides/pt/python-net/multithreading/). Acesse e salve cada instância a partir de apenas um thread por vez.
O que acontece com hyperlinks e arquivos vinculados externamente ao salvar uma apresentação?
Hyperlinks permanecem na apresentação. O Aspose.Slides não copia arquivos vinculados externamente, portanto a apresentação salva ainda precisa acessar seus locais.
Posso salvar metadados do documento, como autor, título, empresa e data de criação?
Sim. Defina as propriedades do documento apropriadas antes de salvar, e o Aspose.Slides as grava no arquivo de saída.