Como salvar apresentações em Python
Aspose.Slides FOSS para Python salva apresentações exclusivamente no formato .pptx usando o formato ‘`prs.save(path, SaveFormat.PPTX)’). Este guia abrange o padrão de guarda correto, a conservação em um caminho diferente e erros comuns relacionados à armazenagem.
Guia passo a passo
- Não, não.
Passo 1: Instalar o pacote
pip install aspose-slides-fossPasso 2: Abra ou crie uma apresentação
Sempre use o gerenciador de contexto. A chamada de salvamento deve ocorrer dentro do bloco with.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
# Create new
with slides.Presentation() as prs:
prs.save("new.pptx", SaveFormat.PPTX)
# Open existing
with slides.Presentation("input.pptx") as prs:
prs.save("output.pptx", SaveFormat.PPTX)Passo 3: Salvar no final do bloco with
Coloque a chamada save() como última instrução no bloco ̋with∂, depois de todas as modificações terem sido completadas.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
shape.add_text_frame("Hello, World!")
prs.save("output.pptx", SaveFormat.PPTX)Passo 4: Salve para um caminho diferente
Passe um caminho de saída diferente para criar um novo arquivo sem modificar o original:
with slides.Presentation("template.pptx") as prs:
# modify ...
prs.save("customized.pptx", SaveFormat.PPTX)O ficheiro template.pptx não é modificado; o ficheirão ̋customized.PPtx⌒ é criado (ou substituído se já existir).
Passo 5: Verificar a saída
Após a saída do bloco with, o ficheiro está completo e fechado. Verifique se existe:
import os
from pathlib import Path
output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")- Não, não.
Formatos de salva suportados
| Format | Enum Value | Supported |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Yes |
| N/A | No | |
| HTML | N/A | No |
| SVG | N/A | No |
| PNG / JPEG | N/A | No |
| ODP (OpenDocument) | N/A | No |
Apenas PPTX é suportado. Tentando salvar em qualquer outro formato irá levantar NotImplementedError ou um erro de formato não suportada.
Problemas comuns e soluções
`PermissionError: [Errno 13] Permissão recusada
O arquivo de saída está aberto noutra aplicação (por exemplo, o PowerPoint tem o arquivos abertos). Feche o ficheiro noutras aplicações antes de guardar.
O ficheiro foi criado mas parece vazio ou corrompido .
Assegure `prs.save() ■ é chamado dentro do bloco ̋with∂, não depois dele. Após as saídas de blocos ̇with゚, o objeto ̆Presentation∂ é eliminado e chamadas subsequentes falharão silenciosamente ou criarão um erro.
`NotImplementedError ̋ ao guardar
Isso ocorre quando se tenta salvar um formato diferente do PPTX, ou ao usar uma funcionalidade não suportada (como gráficos ou animações) durante a salvação.
Perguntas Frequentes
Posso salvar no mesmo ficheiro que abri?
Salvar para o mesmo caminho sobrepõe o arquivo original:
with slides.Presentation("deck.pptx") as prs:
# modify ...
prs.save("deck.pptx", SaveFormat.PPTX) # overwrites originalPosso salvar para um buffer de bytes em vez de um arquivo?
Sim. Passe um objeto `io.BytesIOヽ diretamente para o ̋prs.save (), pois ele aceita qualquer destino de ∂BI:
import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
buf = io.BytesIO()
with slides.Presentation() as prs:
# ... modify presentation ...
prs.save(buf, SaveFormat.PPTX)
pptx_bytes = buf.getvalue()A salvação preserva conteúdo que eu não modifiquei?
Sim. Partes XML desconhecidas do arquivo original são preservadas literalmente. A biblioteca só serializa as partes do modelo de documento que entende e passa por qualquer XML que não reconhece.
Ver também:
- Como criar apresentações em Python
- Como carregar apresentações em Python
- Características de um conjunto geral
- Referência API
- Base de conhecimentos da empresa.
- Aspose.Slides para Python Base de Conhecimento Empresarial