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

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

Aspose.Slides FOSS for .NET lets you open any .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: Збереження у режимі round‑trip

Після перегляду або зміни презентації збережіть її назад у 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 (binary PowerPoint 97-2003) файли не підтримуються.

У форм (Shapes) немає властивості TextFrame

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


Часті запитання

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

Так. Невідомі XML‑частини зберігаються дослівно під час збереження у зворотному циклі. Бібліотека не видалятиме жодного 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}");

Див. також

 Українська