Как да запазвате презентации в .NET

Как да запазвате презентации в .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Да
PDFN/AНе
HTMLN/AНе
SVGN/AНе
PNG / JPEGN/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, който не разпознава.


Вижте също

 Български