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

بررسی کلی

Open Presentations on Android نحوه استفاده از کلاس Presentation برای باز کردن یک ارائه را شرح داد. این مقاله چگونگی ایجاد و ذخیره ارائه‌ها را توضیح می‌دهد. کلاس Presentation محتویات یک ارائه را شامل می‌شود. چه از ابتدا یک ارائه بسازید و چه یک ارائه موجود را اصلاح کنید، پس از اتمام می‌خواهید آن را ذخیره کنید. با Aspose.Slides برای Android می‌توانید به فایل یا جریان ذخیره کنید. این مقاله روش‌های مختلف ذخیره یک ارائه را توضیح می‌دهد.

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

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

import com.aspose.slides.*;

// یک شیء از کلاس Presentation که نمایانگر یک فایل ارائه است را ایجاد کنید.
Presentation presentation = new Presentation();
try {
    // برخی کارها را در اینجا انجام دهید...

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

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

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

import com.aspose.slides.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

// یک شیء از کلاس Presentation که نمایانگر یک فایل ارائه است را ایجاد کنید.
Presentation presentation = new Presentation();
try {
    OutputStream fileStream = new FileOutputStream("Output.pptx");
    try {
        // ارائه را در جریان ذخیره کنید.
        presentation.save(fileStream, SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

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

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

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", 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 ذخیره می‌کند.

import com.aspose.slides.*;

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

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

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

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

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

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

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

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

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);

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

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

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

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

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

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

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

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.None);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-out.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

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

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setCompressionLevel(CompressionLevel.Level9);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Sample-level9.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

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

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

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

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

import com.aspose.slides.*;

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);

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

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

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

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

import com.aspose.slides.*;

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

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

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

        System.out.println(progress + "% of the file has been converted.");
    }
}

سؤال‌های متداول

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

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

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

خیر. یک نمونهٔ Presentation امن برای چندنخی نیست؛ آن را از یک نخ واحد ذخیره کنید.

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

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

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

بله. ویژگی‌های استاندارد document properties پشتیبانی می‌شوند و هنگام ذخیره به فایل نوشته می‌شوند.