Як зберігати презентації у .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");Підтримуваний формат збереження
| Format | Enum Value | Supported |
|---|---|---|
| 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, не викликає виключення — параметр формату тихо ігнорується, і файл завжди зберігається як PPTX. Для невизнаного значення формату немає NotSupportedException.
Часті запитання
Чи можу я зберегти у той самий файл, який відкрив?
Так. Збереження у той самий шлях перезаписує оригінальний файл:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalЧи збереження зберігає вміст, який я не змінював?
Так. Невідомі XML‑частини з оригінального файлу зберігаються дослівно. Бібліотека лише серіалізує ті частини моделі документа, які вона розуміє, і пропускає будь‑який XML, який вона не розпізнає.