Как да запазвате презентации в .NET
Aspose.Slides FOSS for .NET запазва презентациите изключително във формат .pptx, използвайки prs.Save(path, SaveFormat.Pptx). Това ръководство обхваща правилния модел за запазване, запазване в различен път, запазване в поток и често срещаните грешки, свързани със запазването.
Ръководство стъпка по стъпка
Стъпка 1: Инсталирайте пакета
dotnet add package Aspose.Slides.FossСтъпка 2: Отворете или създайте презентация
Винаги използвайте изявление using. Извикването за запазване трябва да се извърши преди обектът да бъде освободен.
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);Стъпка 3: Записване след всички модификации
Поставете извикването Save() след като всички модификации са завършени, преди да приключи обхватът using.
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);Стъпка 4: Записване в различен път
Посочете различен път за изход, за да създадете нов файл без да променяте оригинала:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Файлът template.pptx не се променя; customized.pptx се създава (или се презаписва, ако вече съществува).
Стъпка 5: Запис в поток
Методът Presentation.Save също приема 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");Стъпка 6: Проверете изхода
След като запишете във файл, проверете дали съществува:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Поддържан формат за запазване
| Формат | Enum стойност | Поддържано |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Да |
| N/A | Не | |
| HTML | N/A | Не |
| SVG | N/A | Не |
| PNG / JPEG | N/A | Не |
| ODP (OpenDocument) | N/A | Не |
Поддържа се само PPTX. Параметърът format в момента се игнорира; всички презентации се запазват като PPTX, независимо от указаното SaveFormat.
Общи проблеми и решения
IOException: The process cannot access the file
Изходният файл е отворен в друго приложение (например PowerPoint има отворен файл). Затворете файла в другите приложения преди да запазите.
Файлът е създаден, но изглежда празен или повреден
Уверете се, че prs.Save() се извиква преди обектът да бъде освободен. След като Dispose() се изпълни, последващите извиквания ще се провалят или ще произведат повредени резултати.
Неочакван формат на изхода при запазване
Предаването на всяка стойност SaveFormat, различна от SaveFormat.Pptx, не предизвиква изключение — параметърът format се игнорира без предупреждение и файлът винаги се запазва като PPTX. Няма NotSupportedException за неразпозната стойност на формата.
Често задавани въпроси
Мога ли да запазя в същия файл, който отворих?
Да. Записването в същия път презаписва оригиналния файл:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalЗапазва ли запазването съдържание, което не съм променил?
Да. Неизвестните XML части от оригиналния файл се запазват дословно. Библиотеката сериализира само частите от модела на документа, които разбира, и пропуска всякакъв XML, който не разпознава.