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.FossEtapa 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
| Formato | Valor Enum | Suportado |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Sim |
| N/A | Não | |
| HTML | N/A | Não |
| SVG | N/A | Não |
| PNG / JPEG | N/A | Não |
| ODP (OpenDocument) | N/A | Nã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 originalSalvar 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.