Como Carregar Apresentações em .NET
Aspose.Slides FOSS for .NET permite abrir qualquer arquivo .pptx, inspecionar seu conteúdo e salvar de volta em PPTX ou extrair dados dele. Este guia cobre a abertura de um arquivo, a iteração de slides, a leitura de texto de formas e o ciclo completo de salvamento.
Guia passo a passo
Etapa 1: Instalar o Pacote
dotnet add package Aspose.Slides.FossEtapa 2: Abrir uma Apresentação Existente
Passe o caminho do arquivo para new Presentation(). Use uma instrução using para garantir a limpeza.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
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.
Etapa 3: Inspecionar Slides
Iterar sobre todos os slides e imprimir seu índice:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
var slide = prs.Slides[i];
int shapeCount = slide.Shapes.Count;
Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}Etapa 4: Ler Texto da Forma
Iterar sobre formas e ler texto das formas que têm um TextFrame:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
foreach (var shape in slide.Shapes)
{
if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
{
string text = autoShape.TextFrame.Text;
if (!string.IsNullOrWhiteSpace(text))
Console.WriteLine($" Shape text: {text}");
}
}
}Etapa 5: Ler propriedades do documento
Acesse as propriedades principais do documento a partir de prs.DocumentProperties:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title: {props.Title}");
Console.WriteLine($"Author: {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");Etapa 6: Salvamento de Ida e Volta
Depois de inspecionar ou modificar a apresentação, salve-a novamente em PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Salvar em um caminho diferente cria um novo arquivo. Salvar no mesmo caminho sobrescreve o original.
Problemas Comuns e Soluções
FileNotFoundException
Verifique se o caminho para o arquivo .pptx está correto em relação ao diretório de trabalho. Use Path.Combine para construção robusta de caminhos:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
A biblioteca suporta apenas .pptx (Office Open XML). Arquivos legados .ppt (PowerPoint binário 97-2003) não são suportados.
Shapes não possuem uma propriedade TextFrame
Algumas formas (Connector, PictureFrame) não têm um TextFrame. Converta para IAutoShape e verifique se é nulo antes de acessar o texto.
Perguntas Frequentes
O carregamento preserva todo o conteúdo original?
Sim. As partes XML desconhecidas são preservadas literalmente ao salvar em ida e volta. A biblioteca não removerá nenhum conteúdo XML que ainda não reconhece.
Posso carregar um PPTX protegido por senha?
Apresentações protegidas por senha (criptografadas) não são suportadas nesta edição.
Posso extrair imagens incorporadas?
Acesse a coleção de imagens: prs.Images retorna o ImageCollection. Cada imagem tem propriedades para ler os dados brutos da imagem.
É suportado o carregamento a partir de um MemoryStream?
Sim. O construtor Presentation aceita um Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");