حفظ العروض التقديمية على Android

نظرة عامة

Open Presentations on Android يشرح كيفية استخدام فئة Presentation لفتح عرض تقديمي. يوضح هذا المقال كيفية إنشاء العروض التقديمية وحفظها. فئة Presentation تحتوي على محتوى العرض التقديمي. سواءً كنت تنشئ عرضًا من الصفر أو تعدل عرضًا موجودًا، فستحتاج إلى حفظه عند الانتهاء. مع Aspose.Slides for Android، يمكنك الحفظ إلى ملف أو دفق. يوضح هذا المقال الطرق المختلفة لحفظ عرض تقديمي.

حفظ العروض التقديمية إلى ملفات

احفظ عرضًا تقديميًا إلى ملف عن طريق استدعاء طريقة 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 مع قيمة من تعداد 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 يفرض حدودًا تبلغ 4 GB (2^32 بايت) على الحجم غير المضغوط لأي ملف، وحجم الضغط لأي ملف، وإجمالي حجم الأرشيف، ويقيد الأرشيف بـ 65 535 (2^16‑1) ملفًا. توسعات صيغة ZIP64 ترفع هذه الحدود إلى 2^64.

طريقة 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 غير آمن للاستخدام المتعدد الخيوط؛ احفظه من خيط واحد فقط.

ماذا يحدث للروابط التشعبية والملفات المرتبطة خارجيًا عند الحفظ؟

Hyperlinks يتم الحفاظ عليها. الملفات المرتبطة خارجيًا (مثل الفيديوهات عبر مسارات نسبية) لا تُنسخ تلقائيًا—تأكد من بقاء المسارات المشار إليها متاحة.

هل يمكنني تعيين/حفظ بيانات تعريف المستند (المؤلف، العنوان، الشركة، التاريخ)؟

نعم. يتم دعم خصائص document properties القياسية وسيتم كتابتها إلى الملف عند الحفظ.