Як завантажити презентації у .NET

Як завантажити презентації у .NET

Aspose.Slides FOSS for .NET дозволяє відкривати будь‑який .pptx файл, переглядати його вміст і або зберігати його назад у PPTX, або витягувати дані з нього. Цей посібник охоплює відкриття файлу, перебір слайдів, читання тексту форми та збереження зворотного проходу.

Покроковий посібник

Крок 1: Встановити пакет

dotnet add package Aspose.Slides.Foss

Крок 2: Відкрити існуючу презентацію

Передайте шлях до файлу у new Presentation(). Використайте оператор using, щоб забезпечити очищення.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
prs.Save("output.pptx", SaveFormat.Pptx);

Невідомі XML‑частини у вихідному файлі зберігаються дослівно: бібліотека ніколи не видаляє вміст, який вона ще не розуміє.


Крок 3: Перевірити слайди

Ітерація по всіх слайдах і виведення їх індексу:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
    var slide = prs.Slides[i];
    int shapeCount = slide.Shapes.Count;
    Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}

Крок 4: Читання тексту форми

Ітеруйте форми та зчитайте текст із форм, які мають TextFrame:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
    foreach (var shape in slide.Shapes)
    {
        if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
        {
            string text = autoShape.TextFrame.Text;
            if (!string.IsNullOrWhiteSpace(text))
                Console.WriteLine($"  Shape text: {text}");
        }
    }
}

Крок 5: Читання властивостей документа

Отримати доступ до основних властивостей документа з prs.DocumentProperties:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title:   {props.Title}");
Console.WriteLine($"Author:  {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");

Крок 6: Збереження у зворотному циклі

Після перевірки або зміни презентації збережіть її назад у PPTX:

prs.Save("output.pptx", SaveFormat.Pptx);

Збереження за іншим шляхом створює новий файл. Збереження за тим же шляхом перезаписує оригінал.


Поширені проблеми та виправлення

FileNotFoundException

Перевірте, чи правильний шлях до файлу .pptx відносно робочого каталогу. Використовуйте Path.Combine для надійного формування шляху:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

Бібліотека підтримує лише .pptx (Office Open XML). Файли старого формату .ppt (бінарний PowerPoint 97-2003) не підтримуються.

Форми не мають властивості TextFrame

Деякі форми (Connector, PictureFrame) не мають TextFrame. Приведіть до IAutoShape і перевірте на null перед доступом до тексту.


Поширені запитання

Чи зберігає завантаження весь оригінальний вміст?

Так. Невідомі частини XML зберігаються дослівно під час збереження у режимі round‑trip. Бібліотека не буде видаляти жодного XML‑вмісту, який вона ще не розпізнає.

Чи можу я завантажити PPTX, захищений паролем?

Презентації, захищені паролем (зашифровані), не підтримуються у цьому випуску.

Чи можу я витягнути вбудовані зображення?

Отримайте доступ до колекції зображень: prs.Images повертає ImageCollection. Кожне зображення має властивості для читання необроблених даних зображення.

Чи підтримується завантаження з MemoryStream?

Так. Конструктор Presentation приймає Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Див. також

 Українська