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

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

Aspose.Slides FOSS за .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 части се запазват буквално при запазване в обратен процес. Библиотеката няма да премахне никакво 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}");

Вижте също

 Български