كيفية تحميل العروض التقديمية في .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 غير المعروفة حرفيًا عند حفظ الجولة. المكتبة لن تزيل أي محتوى 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}");

انظر أيضًا

 العربية