نحوه ذخیرهسازی ارائهها در .NET
Aspose.Slides FOSS for .NET ارائهها را بهصورت انحصاری به فرمت .pptx با استفاده از prs.Save(path, SaveFormat.Pptx) ذخیره میکند. این راهنما الگوی صحیح ذخیرهسازی، ذخیرهسازی در مسیر دیگری، ذخیرهسازی در یک جریان، و خطاهای رایج مرتبط با ذخیرهسازی را پوشش میدهد.
راهنمای گام به گام
مرحله 1: نصب بسته
dotnet add package Aspose.Slides.Fossمرحله ۲: باز کردن یا ایجاد یک ارائه
همیشه از یک عبارت 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);مرحله ۴: ذخیره در مسیر متفاوت
یک مسیر خروجی متفاوت را پاس دهید تا یک فایل جدید ایجاد کنید بدون اینکه فایل اصلی را تغییر دهید:
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");مرحله ۶: خروجی را تأیید کنید
پس از ذخیرهسازی در یک فایل، وجود آن را بررسی کنید:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");قالب ذخیرهسازی پشتیبانیشده
| قالب | مقدار Enum | پشتیبانی |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | بله |
| N/A | خیر | |
| HTML | N/A | خیر |
| SVG | N/A | خیر |
| PNG / JPEG | N/A | خیر |
| ODP (OpenDocument) | N/A | خیر |
فقط PPTX پشتیبانی میشود. پارامتر format در حال حاضر نادیده گرفته میشود؛ تمام ارائهها بهعنوان PPTX ذخیره میشوند بدون در نظر گرفتن SaveFormat مشخصشده.
مسائل رایج و راهحلها
IOException: The process cannot access the file
فایل خروجی در برنامهای دیگر باز است (مثلاً PowerPoint فایل را باز دارد). قبل از ذخیرهسازی، فایل را در برنامههای دیگر ببندید.
فایل ایجاد میشود اما خالی یا خراب به نظر میرسد
اطمینان حاصل کنید که prs.Save() قبل از از بین رفتن شیء فراخوانی شود. پس از اجرای Dispose()، تماسهای بعدی شکست میخورند یا خروجی خراب تولید میکنند.
قالب خروجی غیرمنتظره هنگام ذخیرهسازی
ارسال هر مقدار SaveFormat به جز SaveFormat.Pptx استثنایی ایجاد نمیکند — پارامتر format بهصورت ساکن نادیده گرفته میشود و فایل همیشه بهصورت PPTX ذخیره میشود. برای مقدار فرمت ناشناخته NotSupportedException وجود ندارد.
سوالات متداول
آیا میتوانم در همان فایلی که باز کردم ذخیره کنم؟
بله. ذخیرهسازی در همان مسیر، فایل اصلی را بازنویسی میکند:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalآیا ذخیرهسازی محتوایی که من تغییر ندادهام را حفظ میکند؟
بله. بخشهای XML ناشناخته از فایل اصلی بهصورت دقیق حفظ میشوند. کتابخانه فقط بخشهای مدل سند را که میفهمد سریالسازی میکند و هر XMLی که تشخیص نمیدهد را عبور میدهد.