Como carregar apresentações em Python
Aspose.Slides FOSS for Python lets you open any .pptx Este guia abriria um arquivo, iteraria slides, leria texto de forma e redirecionaria a salvação.
Guia passo a passo
Passo 1: Instalar o pacote
Instale a biblioteca no seu ambiente Python executando o seguinte comando pip antes de executar qualquer exemplo:
pip install aspose-slides-fossPasso 2: Abra uma apresentação existente
Passe o caminho do arquivo para: slides.Presentation().Use o gerenciador de contexto para garantir a limpeza.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Partes XML desconhecidas no arquivo de origem são preservadas literalmente: a biblioteca nunca remove conteúdo que ainda não entende.
Passo 3: Inspecionar as slides
Iterar sobre todos os slides em prs.slides e imprimir o índice de cada diapositiva e a contagem das formas:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Passo 4: Ler texto de forma
Iterar sobre formas e ler texto de formas que têm um TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Passo 5: Leia as propriedades do documento
Leia o título da apresentação, autor e assunto de: prs.document_properties Utilizando o acesso de atributos padrão:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Passo 6: Salvar de ida e volta
Após inspecionar ou modificar a apresentação, salve-a de volta para o PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Salvar para um caminho diferente cria um novo arquivo. Salvando para o mesmo caminho sobrepõe-se ao original.
Problemas comuns e soluções
FileNotFoundError
Verifique se o caminho para a .pptx O arquivo é correto em relação ao diretório de trabalho. Use pathlib.Path para construção de trilhos robustos:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
A biblioteca suporta o formato PPTX (Office Open XML). O binário legado. .ppt O formato (PowerPoint 972003) não pode ser carregado.
Formas não têm atributo text_frame
Algumas formas (Conectores, PictureFrames, GroupShapes) não têm um sistema de imagem. text_frame.- Guarda com . hasattr(shape, "text_frame") and shape.text_frame is not None antes de aceder ao texto.
Perguntas Frequentes
O carregamento preserva todo o conteúdo original?
As partes XML desconhecidas no arquivo de origem são preservadas na salvação de ida e volta. O conteúdo que não é compreendido pela biblioteca é mantido inalterado.
Posso carregar um PPTX protegido por senha?
As apresentações protegidas por senha (criptografadas) não são suportadas nesta edição.
Posso extrair imagens embutidas?
Acesse a coleção de imagens: prs.images Retorna o valor de: ImageCollection.Cada imagem tem um content_type e a bytes Propriedade para ler os dados da imagem bruta.
É suportado o carregamento a partir de um fluxo em memória?
Carregamento direto de: io.BytesIO Não está exposto na API atual. Escreva os bytes em um arquivo temporário primeiro:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)