כיצד לטעון מצגות ב-.NET

כיצד לטעון מצגות ב-.NET

אספוז.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 (binary 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}");

ראה גם

 עברית