نحوه ذخیره‌سازی ارائه‌ها در .NET

نحوه ذخیره‌سازی ارائه‌ها در .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);

مرحله ۳: ذخیره پس از تمام تغییرات

فراخوانی 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");

مرحله 6: خروجی را تأیید کنید

پس از ذخیره‌سازی در یک فایل، وجود آن را بررسی کنید:

var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");

قالب ذخیره‌سازی پشتیبانی‌شده

قالبمقدار Enumپشتیبانی
PPTX (Office Open XML)SaveFormat.Pptxبله
PDFناموجودخیر
HTMLناموجودخیر
SVGناموجودخیر
PNG / JPEGناموجودخیر
ODP (OpenDocument)ناموجودخیر

فقط PPTX پشتیبانی می‌شود. پارامتر format در حال حاضر نادیده گرفته می‌شود؛ تمام ارائه‌ها به‌عنوان PPTX ذخیره می‌شوند، صرف‌نظر از SaveFormat مشخص‌شده.


مشکلات رایج و راه‌حل‌ها

IOException: The process cannot access the file

فایل خروجی در برنامه دیگری باز است (مثلاً PowerPoint فایل را باز دارد). قبل از ذخیره‌سازی، فایل را در برنامه‌های دیگر ببندید.

فایل ایجاد می‌شود اما خالی یا خراب به نظر می‌رسد

اطمینان حاصل کنید که prs.Save() قبل از اینکه شیء از بین برود فراخوانی شود. پس از اجرای Dispose()، تماس‌های بعدی شکست می‌خورند یا خروجی خراب تولید می‌کنند.

قالب خروجی غیرمنتظره هنگام ذخیره‌سازی

ارسال هر مقدار SaveFormat غیر از SaveFormat.Pptx استثنایی ایجاد نمی‌کند — پارامتر format به‌صورت ساکن نادیده گرفته می‌شود و فایل همیشه به‌صورت PPTX ذخیره می‌شود. برای مقدار format ناشناخته NotSupportedException وجود ندارد.


سوالات متداول

آیا می‌توانم در همان فایلی که باز کردم ذخیره کنم؟

بله. ذخیره‌سازی در همان مسیر، فایل اصلی را بازنویسی می‌کند:

using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx);  // overwrites original

آیا ذخیره‌سازی محتوایی که من تغییر نداده‌ام را حفظ می‌کند؟

بله. بخش‌های ناشناخته XML از فایل اصلی به‌صورت کلمه به کلمه حفظ می‌شوند. کتابخانه فقط بخش‌های مدل سند را که می‌فهمد سریال‌سازی می‌کند و هر XMLی که تشخیص نمی‌دهد را عبور می‌دهد.


موارد مرتبط

 فارسی