Как да запазим презентации в .NET
Aspose.Slides FOSS for .NET saves presentations exclusively to .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. Параметърът за формат в момента се игнорира; всички презентации се запазват като 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, който не разпознава.