Como carregar apresentações em .NET
Aspose.Slides FOSS for .NET 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
aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.
Passo 2: Abra uma apresentação existente
Passe o caminho do arquivo para: new Presentation().- Usar um . using declaração para assegurar 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);As 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 e imprimir o 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");
}Passo 4: Ler texto de forma
Iterar sobre formas e ler texto de 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}");
}
}
}Passo 5: Leia as propriedades do documento
Acesso a propriedades do documento principal 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}");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
FileNotFoundException
Verifique se o caminho para a .pptx O arquivo é correto em relação ao diretório de trabalho. Use Path.Combine para construção de trilhos robustos:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
A biblioteca apoia a .pptx (Office Open XML) apenas. Legado .ppt (powerpoint 97-2003) não são suportados.
Formas não têm propriedade TextFrame
Algumas formas (Connector, PictureFrame) não têm um TextFrame.- A lançar . IAutoShape e verifique se há nada antes de acessar o texto.
Perguntas Frequentes
O carregamento preserva todo o conteúdo original?
Sim. As partes XML desconhecidas são preservadas literalmente na salvação de ida e volta. A biblioteca não removerá qualquer conteúdo XML que ainda não reconheça.
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 propriedades para ler os dados da imagen crua.
É suportado o carregamento a partir de um MemoryStream?
Sim, o… Presentation O constructor aceita um Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");