Como salvar apresentações em .NET

Como salvar apresentações em .NET

Aspose.Slides FOSS for .NET salva apresentações exclusivamente no formato .pptx usando prs.Save(path, SaveFormat.Pptx). Este guia cobre o padrão correto de salvamento, salvar em um caminho diferente, salvar em um fluxo e erros comuns relacionados ao salvamento.

Guia passo a passo

Etapa 1: Instalar o Pacote

dotnet add package Aspose.Slides.Foss

Etapa 2: Abrir ou Criar uma Apresentação

Sempre use uma declaração using. A chamada de salvamento deve ocorrer antes que o objeto seja descartado.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);
// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);

Etapa 3: Salvar após todas as modificações

Coloque a chamada Save() após todas as modificações serem concluídas, antes que o escopo using termine.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);

Etapa 4: Salvar em um caminho diferente

Passe um caminho de saída diferente para criar um novo arquivo sem modificar o original:

using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);

O arquivo template.pptx não é modificado; customized.pptx é criado (ou sobrescrito se já existir).


Etapa 5: Salvar em um Stream

O método Presentation.Save também aceita um Stream:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");

Etapa 6: Verificar a Saída

Depois de salvar em um arquivo, verifique se ele existe:

var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");

Formato de Salvamento Compatível

FormatoValor EnumSuportado
PPTX (Office Open XML)SaveFormat.PptxSim
PDFN/ANão
HTMLN/ANão
SVGN/ANão
PNG / JPEGN/ANão
ODP (OpenDocument)N/ANão

Somente PPTX é suportado. O parâmetro format é atualmente ignorado; todas as apresentações são salvas como PPTX independentemente do SaveFormat especificado.


Problemas Comuns e Soluções

IOException: The process cannot access the file

O arquivo de saída está aberto em outro aplicativo (por exemplo, o PowerPoint tem o arquivo aberto). Feche o arquivo em outros aplicativos antes de salvar.

Arquivo é criado mas aparece vazio ou corrompido

Certifique‑se de que prs.Save() seja chamado antes que o objeto seja descartado. Após a execução de Dispose(), chamadas subsequentes falharão ou produzirão saída corrompida.

Formato de saída inesperado ao salvar

Passar qualquer valor SaveFormat diferente de SaveFormat.Pptx não lança uma exceção — o parâmetro de formato é silenciosamente ignorado e o arquivo é sempre salvo como PPTX. Não há NotSupportedException para um valor de formato não reconhecido.


Perguntas Frequentes

Posso salvar no mesmo arquivo que abri?

Sim. Salvar no mesmo caminho sobrescreve o arquivo original:

using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx);  // overwrites original

Salvar preserva o conteúdo que eu não modifiquei?

Sim. As partes XML desconhecidas do arquivo original são preservadas literalmente. A biblioteca apenas serializa as partes do modelo de documento que entende e passa adiante qualquer XML que não reconhece.


Veja também

 Português