كيفية حفظ العروض التقديمية في .NET
Aspose.Slides FOSS for .NET saves presentations exclusively to .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 | نعم |
| N/A | لا | |
| HTML | N/A | لا |
| SVG | N/A | لا |
| PNG / JPEG | N/A | لا |
| ODP (OpenDocument) | N/A | لا |
يتم دعم PPTX فقط. يتم حاليًا تجاهل معامل الصيغة؛ جميع العروض تُحفظ كـ 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 لا تتعرف عليه كما هو.