Como Carregar Apresentações em .NET

Como Carregar Apresentações em .NET

Aspose.Slides FOSS for .NET lets you open any .pptx arquivo, inspecione seu conteúdo e ou salve‑o novamente como PPTX ou extraia dados dele. Este guia cobre a abertura de um arquivo, iteração de slides, leitura de texto de formas e o salvamento round‑trip.

Guia passo a passo

Etapa 1: Instale o pacote

dotnet add package Aspose.Slides.Foss

Etapa 2: Abrir uma Apresentação Existente

Passe o caminho do arquivo para new Presentation(). Use um using declaração 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 fonte são preservadas literalmente: a biblioteca nunca remove conteúdo que ainda não entende.


Etapa 3: Inspecionar Slides

Itere sobre todos os slides e imprima 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 das Formas

Itere sobre as formas e leia o texto das formas que possuem 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 Round‑Trip

Depois de inspecionar ou modificar a apresentação, salve-a de volta 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 correções

FileNotFoundException

Verifique se o caminho para o .pptx arquivo 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 .pptx (Office Open XML) apenas. Legado .ppt Arquivos (binary PowerPoint 97-2003) não são suportados.

Formas não possuem a 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. 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 reconheça.

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 possui propriedades para ler os dados brutos da imagem.

O carregamento a partir de um MemoryStream é suportado?

Sim. O Presentation construtor aceita um Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Veja também

 Português