كيفية حفظ العروض التقديمية في .NET
يقوم Aspose.Slides FOSS for .NET بحفظ العروض التقديمية حصريًا بتنسيق .pptx باستخدام prs.Save(path, SaveFormat.Pptx). يغطي هذا الدليل نمط الحفظ الصحيح، والحفظ إلى مسار مختلف، والحفظ إلى تدفق، والأخطاء الشائعة المتعلقة بالحفظ.
دليل خطوة بخطوة
الخطوة 1: تثبيت الحزمة
dotnet add package Aspose.Slides.Fossالخطوة 2: فتح أو إنشاء عرض تقديمي
استخدم دائمًا بيان using. يجب أن يتم استدعاء الحفظ قبل التخلص من الكائن.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);الخطوة 3: حفظ بعد جميع التعديلات
ضع استدعاء Save() بعد اكتمال جميع التعديلات، قبل انتهاء نطاق using.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);الخطوة 4: حفظ إلى مسار مختلف
مرّر مسار إخراج مختلف لإنشاء ملف جديد دون تعديل الأصلي:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);ملف template.pptx لم يتم تعديله؛ customized.pptx تم إنشاؤه (أو استبداله إذا كان موجودًا بالفعل).
الخطوة 5: حفظ إلى تدفق
طريقة Presentation.Save تقبل أيضًا Stream:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");الخطوة 6: التحقق من الإخراج
بعد الحفظ إلى ملف، تحقق من وجوده:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");تنسيق الحفظ المدعوم
| الصيغة | قيمة التعداد | مدعوم |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | نعم |
| غير متوفر | لا | |
| HTML | غير متوفر | لا |
| SVG | غير متوفر | لا |
| PNG / JPEG | غير متوفر | لا |
| ODP (OpenDocument) | غير متوفر | لا |
يتم دعم PPTX فقط. يتم حاليًا تجاهل معلمة format؛ تُحفظ جميع العروض التقديمية كـ PPTX بغض النظر عن SaveFormat المحدد.
المشكلات الشائعة والحلول
IOException: The process cannot access the file
ملف الإخراج مفتوح في تطبيق آخر (مثلاً، PowerPoint يفتح الملف). أغلق الملف في التطبيقات الأخرى قبل الحفظ.
تم إنشاء الملف لكنه يبدو فارغًا أو معطوبًا
تأكد من استدعاء prs.Save() قبل التخلص من الكائن. بعد تشغيل Dispose()، ستفشل الاستدعاءات اللاحقة أو تنتج مخرجات فاسدة.
تنسيق الإخراج غير المتوقع عند الحفظ
تمرير أي قيمة SaveFormat غير SaveFormat.Pptx لا يثير استثناءً — يتم تجاهل معلمة التنسيق بصمت ويتم دائمًا حفظ الملف كـ PPTX. لا يوجد NotSupportedException لقيمة تنسيق غير معروفة.
الأسئلة المتكررة
هل يمكنني الحفظ إلى نفس الملف الذي فتحته؟
نعم. الحفظ إلى نفس المسار يكتب فوق الملف الأصلي:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalهل يحافظ الحفظ على المحتوى الذي لم أعدله؟
نعم. يتم حفظ أجزاء XML غير المعروفة من الملف الأصلي كما هي. تقوم المكتبة بتسلسل الأجزاء من نموذج المستند التي تفهمها فقط، وتمرّر أي XML لا تتعرف عليه.