ذخیره ارائه‌ها در JavaScript

بررسی کلی

Open Presentations in JavaScript نحوه استفاده از کلاس Presentation برای باز کردن یک ارائه را توضیح داد. این مقاله نحوه ساخت و ذخیره‌سازی ارائه‌ها را شرح می‌دهد. کلاس Presentation محتویات یک ارائه را در خود دارد. چه برای ساخت یک ارائه از ابتدا و چه برای تغییر یک ارائه موجود، پس از اتمام کار باید آن را ذخیره کنید. با Aspose.Slides برای Node.js می‌توانید به file یا stream ذخیره کنید. این مقاله روش‌های مختلف ذخیره یک ارائه را بیان می‌کند.

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

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل ارائه است.
let presentation = new aspose.slides.Presentation();
try {
    // در اینجا کاری انجام دهید...

    // ارائه را به یک فایل ذخیره کنید.
    presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل ارائه است.
let presentation = new aspose.slides.Presentation();
try {
    let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
    try {
        // ارائه را به جریان ذخیره کنید.
        presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

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

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

let presentation = new aspose.slides.Presentation();
try {
    presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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

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

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

let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل ارائه است.
let presentation = new aspose.slides.Presentation();
try {
    // ارائه را در قالب Strict Office Open XML ذخیره کنید.
    presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

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

یک فایل Office Open XML یک آرشیو ZIP است که محدودیت 4 GB (2^32 بایت) برای اندازهٔ غیرفشرده هر فایل، اندازهٔ فشرده هر فایل و اندازهٔ کل آرشیو اعمال می‌کند و همچنین تعداد فایل‌ها را به 65 535 (2^16‑1) محدود می‌سازد. افزونه‌های فرمت ZIP64 این محدودیت‌ها را به 2^64 افزایش می‌دهند.

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

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

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

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

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always);

let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

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

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

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

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

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setRefreshThumbnail(false);

let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
}
finally {
    presentation.dispose();
}

ذخیره‌گذاری پیشرفت به‌صورت درصد

گزارش‌گیری پیشرفت ذخیره‌سازی از طریق متد setProgressCallback بر روی SaveOptions و زیرکلاس‌های آن پیکربندی می‌شود. یک پروکسی Java که رابط IProgressCallback را پیاده‌سازی می‌کند ارائه کنید؛ در طول استخراج، این بازگشت‌خوان به‌صورت دوره‌ای به‌روزرسانی‌های درصدی دریافت می‌کند.

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

const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
    reporting: function(progressValue) {
        // از مقدار درصد پیشرفت در اینجا استفاده کنید.
        const progress = Math.floor(progressValue);
        console.log(`${progress}% of the file has been converted.`);
    }
});

let saveOptions = new aspose.slides.PdfOptions();
saveOptions.setProgressCallback(ExportProgressHandler);

let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions);
} finally {
    presentation.dispose();
}

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

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

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

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

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

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

Hyperlinks حفظ می‌شوند. فایل‌های لینک‌شده خارجی (مثلاً ویدیوها با مسیرهای نسبی) به‌صورت خودکار کپی نمی‌شوند—اطمینان حاصل کنید مسیرهای مرجع همچنان قابل دسترسی باشند.

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

بله. document properties استاندارد (/slides/fa/nodejs-java/presentation-properties/) پشتیبانی می‌شوند و هنگام ذخیره به فایل نوشته خواهند شد.