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

بررسی کلی

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

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

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

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

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

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

// یک نمونه از کلاس 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 با یک مقدار از enumeration ViewType استفاده کنید.

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 ذخیره می‌کند.

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 است که محدودیت ۴ گیگابایت (۲^۳۲ بایت) برای اندازه غیر فشرده هر فایل، اندازه فشرده هر فایل و کل حجم آرشیو اعمال می‌کند، و همچنین تعداد فایل‌های آرشیو را به ۶۵٬۵۳۵ (۲^۱۶‑۱) محدود می‌کند. افزونه‌های قالب ZIP64 این محدودیت‌ها را به ۲^۶۴ افزایش می‌دهند.

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

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

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

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

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();
}

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

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

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

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

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 استفاده کنید.

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();
}
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 [thread‑safe نیست]؛ آن را فقط از یک رشته ذخیره کنید.

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

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

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

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