Як зберігати презентації у .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: Збереження у потік
The 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, який не розпізнає.