ذخیرهٔ ارائه‌ها در .NET

نمایش کلی

باز کردن ارائه‌ها در C# نحوه استفاده از کلاس Presentation را برای باز کردن یک ارائه توضیح داد. این مقاله نحوه ایجاد و ذخیرهٔ ارائه‌ها را بیان می‌کند. کلاس Presentation شامل محتوای یک ارائه است. چه از ابتدا یک ارائه ایجاد کنید و چه یک ارائه موجود را ویرایش کنید، پس از اتمام کار می‌خواهید آن را ذخیره کنید. با Aspose.Slides برای .NET می‌توانید به فایل یا جریان (stream) ذخیره کنید. این مقاله روش‌های مختلف ذخیرهٔ یک ارائه را شرح می‌دهد.

ذخیرهٔ ارائه‌ها در فایل‌ها

یک ارائه را با فراخوانی متد Save کلاس Presentation در یک فایل ذخیره کنید. نام فایل و فرمت ذخیره را به متد پاس بدهید. مثال زیر نشان می‌دهد چگونه یک ارائه را با Aspose.Slides ذخیره کنید.

using Aspose.Slides;
using Aspose.Slides.Export;

// یک شیء از کلاس Presentation ایجاد می‌کند که نمایانگر یک فایل ارائه است.
using (Presentation presentation = new Presentation())
{
    // در اینجا کارهایی انجام دهید...
    
    // ارائه را در یک فایل ذخیره می‌کند.
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

ذخیرهٔ ارائه‌ها در جریان‌ها

می‌توانید یک ارائه را با ارسال یک جریان خروجی به متد Save کلاس Presentation در یک جریان ذخیره کنید. ارائه می‌تواند به انواع مختلفی از جریان‌ها نوشته شود. در مثال زیر، یک ارائهٔ جدید ایجاد می‌کنیم و آن را در یک فایل‌استریم ذخیره می‌کنیم.

using Aspose.Slides;
using Aspose.Slides.Export;

// یک شیء از کلاس Presentation ایجاد می‌کند که نمایانگر یک فایل ارائه است.
using (Presentation presentation = new Presentation())
{
    using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
    {
        // ارائه را در جریان ذخیره می‌کند.
        presentation.Save(fileStream, SaveFormat.Pptx);
    }
}

ذخیرهٔ ارائه‌ها با نوع نمای پیش‌تعریف‌شده

Aspose.Slides به شما اجازه می‌دهد نمای اولیهٔ مورد استفادهٔ PowerPoint هنگام باز شدن ارائهٔ تولیدی را از طریق کلاس ViewProperties تنظیم کنید. ویژگی LastView را به مقداری از شمارش‌گر ViewType اختصاص دهید.

using Aspose.Slides;
using Aspose.Slides.Export;

using (Presentation presentation = new Presentation())
{
    presentation.ViewProperties.LastView = ViewType.SlideMasterView;
    presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}

ذخیرهٔ ارائه‌ها در قالب Strict Office Open XML

Aspose.Slides به شما اجازه می‌دهد یک ارائه را در قالب Strict Office Open XML ذخیره کنید. از کلاس PptxOptions استفاده کنید و هنگام ذخیره ویژگی conformance آن را تنظیم کنید. اگر Conformance.Iso29500_2008_Strict را تنظیم کنید، فایل خروجی در قالب Strict Office Open XML ذخیره می‌شود.

مثال زیر یک ارائه ایجاد می‌کند و آن را در قالب Strict Office Open XML ذخیره می‌کند.

using Aspose.Slides;
using Aspose.Slides.Export;

PptxOptions options = new PptxOptions()
{
    Conformance = Conformance.Iso29500_2008_Strict
};

// یک شیء از کلاس Presentation ایجاد می‌کند که نمایانگر یک فایل ارائه است.
using (Presentation presentation = new Presentation())
{
    // ارائه را در قالب Strict Office Open XML ذخیره می‌کند.
    presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}

ذخیرهٔ ارائه‌ها در قالب Office Open XML در حالت Zip64

یک فایل Office Open XML یک آرشیو ZIP است که محدودیت ۴ گیگابایت (۲^۳۲ بایت) برای اندازهٔ فشرده‌نشدهٔ هر فایل، اندازهٔ فشردهٔ هر فایل و کل آرشیو اعمال می‌کند و همچنین‌ تعداد فایل‌های آرشیو را به ۶۵،۵۳۵ (۲^۱۶‑۱) محدود می‌سازد. افزونه‌های فرمت ZIP64 این محدودیت‌ها را به ۲^۶۴ افزایش می‌دهند.

ویژگی IPptxOptions.Zip64Mode به شما امکان می‌دهد زمان استفاده از افزونه‌های فرمت ZIP64 را هنگام ذخیرهٔ یک فایل Office Open XML انتخاب کنید.

این ویژگی حالت‌های زیر را فراهم می‌کند:

  • IfNecessary فقط در صورتی که ارائه محدودیت‌های فوق را تجاوز کند، از افزونه‌های ZIP64 استفاده می‌کند. این حالت پیش‌فرض است.
  • Never هرگز از افزونه‌های ZIP64 استفاده نمی‌کند.
  • Always همیشه از افزونه‌های ZIP64 استفاده می‌کند.

کد زیر نشان می‌دهد چگونه یک ارائه را به‌عنوان فایل PPTX با فعال‌سازی افزونه‌های فرمت ZIP64 ذخیره کنید:

using Aspose.Slides;
using Aspose.Slides.Export;

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        Zip64Mode = Zip64Mode.Always
    });
}

ذخیرهٔ ارائه‌ها در قالب Office Open XML با سطوح فشرده‌سازی

هنگام کار با ارائه‌های بزرگ می‌توانید سطح فشرده‌سازی را تنظیم کنید تا تعادل بین اندازهٔ فایل و زمان پردازش برقرار شود. بسته به نیازهای شما ممکن است پردازش سریع‌تر یا فایل‌های خروجی کوچکتر را ترجیح دهید.

Aspose.Slides ویژگی IPptxOptions.CompressionLevel را فراهم می‌کند که به شما امکان می‌دهد سطح فشرده‌سازی مورد استفاده هنگام ذخیرهٔ یک ارائه در قالب Office Open XML را مشخص کنید.

سطوح فشرده‌سازی موجود عبارتند از:

  • None: هیچ فشرده‌سازی اعمال نمی‌شود. فایل‌ها همان‌طور ذخیره می‌شوند.
  • Level1: سریع‌ترین فشرده‌سازی با کمترین نسبت فشرده‌سازی.
  • Level2: فشرده‌سازی سریع‌تر با نسبت فشرده‌سازی کمی بهتر نسبت به Level1.
  • Level3: فشرده‌سازی بهتر نسبت به Level2 با تأثیر متوسط بر زمان پردازش.
  • Level4: فشرده‌گذاری بهتر نسبت به Level3.
  • Level5: بهبود فشرده‌سازی نسبت به Level4 با زمان پردازش اضافی.
  • Level6: فشرده‌سازی استاندارد که تعادل خوبی بین سرعت پردازش و اندازهٔ فایل ارائه می‌دهد. این سطح فشرده‌سازی پیش‌فرض است.
  • Level7: فشرده‌گذاری بهتر نسبت به Level6 با پردازش آهسته‌تر.
  • Level8: فشرده‌گذاری بهتر نسبت به Level7.
  • Level9: حداکثر فشرده‌سازی. کوچک‌ترین اندازهٔ فایل را تولید می‌کند که هزینهٔ زمان پردازش طولانی‌تری دارد.

مثال زیر نشان می‌دهد چگونه یک ارائه را به‌عنوان فایل PPTX بدون فشرده‌سازی ذخیره کنید:

using Aspose.Slides;
using Aspose.Slides.Export;

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-out.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.None
    });
}

این مثال نشان می‌دهد چگونه یک ارائه را به‌عنوان فایل PPTX با حداکثر فشرده‌سازی ذخیره کنید:

using Aspose.Slides;
using Aspose.Slides.Export;

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-level9.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.Level9
    });
}

ذخیرهٔ ارائه‌ها بدون به‌روزرسانی تصویر بندانگشتی

ویژگی PptxOptions.RefreshThumbnail کنترل می‌کند که آیا تصویر بندانگشتی هنگام ذخیرهٔ ارائه به PPTX تازه سازی شود یا خیر:

  • اگر true باشد، تصویر بندانگشتی در هنگام ذخیره تازه سازی می‌شود. این مقدار پیش‌فرض است.
  • اگر false باشد، تصویر بندانگشتی فعلی حفظ می‌شود. اگر ارائه هیچ تصویر بندانگشتی نداشته باشد، هیچ تصویری تولید نمی‌شود.

در کد زیر، ارائه بدون به‌روزرسانی تصویر بندانگشتی به PPTX ذخیره می‌شود.

using Aspose.Slides;
using Aspose.Slides.Export;

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        RefreshThumbnail = false
    });
}

دریافت به‌روزرسانی پیشرفت ذخیره به صورت درصدی

اینترفیس IProgressCallback از طریق ویژگی ProgressCallback که توسط اینترفیس ISaveOptions و کلاس انتزاعی SaveOptions ارائه می‌شود، مورد استفاده قرار می‌گیرد. یک پیاده‌سازی از IProgressCallback را به ProgressCallback اختصاص دهید تا به‌روزرسانی‌های پیشرفت ذخیره به صورت درصدی دریافت کنید.

کدهای زیر نشان می‌دهند چگونه از IProgressCallback استفاده کنید.

using Aspose.Slides;
using Aspose.Slides.Export;

ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
using Aspose.Slides;

class ExportProgressHandler : IProgressCallback
{
    public void Reporting(double progressValue)
    {
        // از مقدار درصد پیشرفت در اینجا استفاده کنید.
        int progress = Convert.ToInt32(progressValue);

        Console.WriteLine(progress + "% of the file has been converted.");
    }
}

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

آیا «ذخیرهٔ سریع» (ذخیرهٔ افزایشی) پشتیبانی می‌شود تا تنها تغییرات نوشته شوند؟

خیر. هر بار ذخیره، فایل هدف کامل ایجاد می‌شود؛ «ذخیرهٔ سریع» افزایشی پشتیبانی نمی‌شود.

آیا ذخیرهٔ یک شیء Presentation از چندین رشته همزمان ایمن است؟

خیر. شیء Presentation thread‑safe نیست؛ آن را فقط از یک رشته ذخیره کنید.

هنگام ذخیره چه اتفاقی برایهایپ لینک‌ها و فایل‌های لینک‌خوردهٔ خارجی می‌افتد؟

هایپرلینک‌ها حفظ می‌شوند. فایل‌های لینک‌خوردهٔ خارجی (مانند ویدئوها با مسیرهای نسبی) به‌صورت خودکار کپی نمی‌شوند؛ اطمینان حاصل کنید مسیرهای اشاره‌شده قابل دسترسی باقی بمانند.

آیا می‌توان متادیتای سند (نویسنده، عنوان، شرکت، تاریخ) را تنظیم/ذخیره کرد؟

بله. خصوصیات استاندارد سند [/slides/fa/net/presentation-properties/] پشتیبانی می‌شوند و هنگام ذخیره در فایل نوشته می‌شوند.