Como salvar apresentações em .NET

Como salvar apresentações em .NET

Aspose.Slides FOSS for .NET saves presentations exclusively to .pptx formato 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: Instale o pacote

dotnet add package Aspose.Slides.Foss

Etapa 2: Abrir ou Criar uma Apresentação

Sempre use um using declaração. 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 o Save() chamada após todas as modificações serem concluídas, antes do using escopo terminar.

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 template.pptx arquivo não é modificado; customized.pptx é criado (ou sobrescrito se já existir).


Etapa 5: Salvar em um Stream

O Presentation.Save método 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 Suportado

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

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


Problemas comuns e correçõ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.

O arquivo é criado, mas aparece vazio ou corrompido

Garanta prs.Save() é chamado antes que o objeto seja descartado. Depois Dispose() executa, chamadas subsequentes falharão ou produzirão saída corrompida.

Formato de saída inesperado ao salvar

Passar qualquer SaveFormat valor 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

A gravação preserva o conteúdo que eu não modifiquei?

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


Veja também

 Português