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.FossEtapa 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
| 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 |
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 originalA 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.