حفظ العرض التقديمي

نظرة عامة

تحتوي فئة Presentation على محتوى العرض التقديمي. سواء كنت تنشئ عرضًا تقديميًا من الصفر أو تعدل عرضًا موجودًا، عندما تنتهي، ستحتاج إلى حفظ العرض التقديمي. مع Aspose.Slides لـ PHP عبر Java، يمكن حفظه كـ ملف أو تدفق. تشرح هذه المقالة كيفية حفظ عرض تقديمي بطرق مختلفة:

حفظ العرض التقديمي في ملف

احفظ العرض التقديمي في ملف عن طريق استدعاء طريقة Save للفئة Presentation. ببساطة، قم بتمرير اسم الملف و SaveFormat إلى طريقة Save .

تظهر الأمثلة التالية كيفية حفظ عرض تقديمي باستخدام Aspose.Slides لـ PHP عبر Java.

  # قم بإنشاء كائن Presentation يمثل ملف PPT
  $pres = new Presentation();
  try {
    # ...قم ببعض الأعمال هنا...
    # احفظ العرض التقديمي الخاص بك في ملف
    $pres->save("demoPass.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

حفظ العرض التقديمي في تدفق

من الممكن حفظ العرض التقديمي في تدفق عن طريق تمرير تدفق إخراج إلى طريقة Save للفئة Presentation. هناك العديد من أنواع التدفقات التي يمكن حفظ العرض التقديمي فيها. في المثال أدناه، قمنا بإنشاء ملف عرض تقديمي جديد، وإضافة نص في شكل، وحفظ العرض التقديمي في التدفق.

  # قم بإنشاء كائن Presentation يمثل ملف PPT
  $pres = new Presentation();
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 200, 200, 200);
    # أضف نصًا إلى الشكل
    $shape->getTextFrame()->setText("هذا العرض التوضيحي يوضح كيفية إنشاء ملف PowerPoint وحفظه في تدفق.");
    $os = new Java("java.io.FileOutputStream", "Save_As_Stream_out.pptx");
    $pres->save($os, SaveFormat::Pptx);
    $os->close();
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

حفظ العرض التقديمي مع نوع العرض المحدد مسبقًا

توفر Aspose.Slides لـ PHP عبر Java تسهيلة لتحديد نوع العرض للعرض التقديمي الذي سيتم إنشاؤه عند فتحه في PowerPoint من خلال فئة ViewProperties. تُستخدم خاصية setLastView لتعيين نوع العرض باستخدام تعداد ViewType.

  # فتح ملف العرض التقديمي
  $pres = new Presentation();
  try {
    # تعيين نوع العرض
    $pres->getViewProperties()->setLastView(ViewType::SlideMasterView);
    # حفظ العرض التقديمي
    $pres->save("newDemo.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

حفظ العروض التقديمية بتنسيق Office Open XML الصارم

يسمح لك Aspose.Slides بحفظ العرض التقديمي بتنسيق Office Open XML الصارم. لهذا الغرض، يوفر فئة PptxOptions حيث يمكنك تعيين خاصية التوافق أثناء حفظ ملف العرض التقديمي. إذا قمت بتعيين قيمتها إلى Conformance.Iso29500_2008_Strict، فسيتم حفظ ملف العرض التقديمي الناتج بتنسيق Open XML الصارم.

الكود المثال التالي ينشئ عرضًا تقديميًا ويحفظه بتنسيق Office Open XML الصارم. عند استدعاء طريقة Save للعرض التقديمي، يتم تمرير كائن PptxOptions إليه مع تعيين خاصية التوافق كـ Conformance.Iso29500_2008_Strict.

  # قم بإنشاء كائن Presentation يمثل ملف PPT
  $pres = new Presentation();
  try {
    # الحصول على الشريحة الأولى
    $slide = $pres->getSlides()->get_Item(0);
    # إضافة شكل تلقائي من النوع خط
    $slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
    # تعيين خيارات حفظ تنسيق Office Open XML الصارم
    $options = new PptxOptions();
    $options->setConformance(Conformance->Iso29500_2008_Strict);
    # احفظ العرض التقديمي الخاص بك في ملف
    $pres->save("demoPass.pptx", SaveFormat::Pptx, $options);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

حفظ العروض التقديمية بتنسيق Office Open XML في وضع Zip64

ملف Office Open XML هو أرشيف ZIP له حد 4 جيجابايت (2^32 بايت) على الحجم غير المضغوط لملف، حجم الملف المضغوط، والحجم الكلي للأرشيف، بالإضافة إلى حد 65,535 (2^16-1) ملف في الأرشيف. تزيد ملحقات تنسيق ZIP64 الحدود إلى 2^64.

تسمح خاصية IPptxOptions.Zip64Mode لك باختيار متى تستخدم ملحقات تنسيق ZIP64 للملف Office Open XML المحفوظ.

توفر هذه الخاصية الأوضاع التالية:

  • Zip64Mode.IfNecessary تعني أنه سيتم استخدام ملحقات تنسيق ZIP64 فقط إذا كان العرض التقديمي يقع خارج القيود المذكورة أعلاه. هذه هي الوضع الافتراضي.
  • Zip64Mode.Never تعني أنه لن يتم استخدام ملحقات تنسيق ZIP64.
  • Zip64Mode.Always تعني أنه سيتم دائمًا استخدام ملحقات تنسيق ZIP64.

الشفرة التالية توضح كيفية حفظ العرض التقديمي بتنسيق PPTX مع ملحقات تنسيق ZIP64:

  $pres = new Presentation("Sample.pptx");
  try {
    $pptxOptions = new PptxOptions();
    $pptxOptions->setZip64Mode(Zip64Mode::Always);
    
    $pres->save("Sample-zip64.pptx", SaveFormat::Pptx, $pptxOptions);
  } finally {
    $pres->dispose();
  }

تحديثات تقدم الحفظ بالنسبة المئوية

تمت إضافة واجهة IProgressCallback إلى واجهة ISaveOptions و الفئة المجردة SaveOptions. تمثل واجهة IProgressCallback كائن رد نداء لتحديثات تقدم الحفظ بالنسبة المئوية.

تظهر مقتطفات الشيفرة التالية كيفية استخدام واجهة IProgressCallback:

  class ExportProgressHandler {
    function reporting($progressValue) {
      # استخدم قيمة التقدم المئوية هنا
      $progress = java("java.lang.Double")->valueOf($progressValue)->intValue();
      echo($progress . "% تم تحويل الملف");
    }
  }

  # فتح ملف العرض التقديمي
  $pres = new Presentation("ConvertToPDF.pptx");
  try {
    $saveOptions = new PdfOptions();
    $progressHandler = java_closure(new ExportProgressHandler(), null, java("com.aspose.slides.IProgressCallback"));
    $saveOptions->setProgressCallback($progressHandler);
    $pres->save("ConvertToPDF.pdf", SaveFormat::Pdf, $saveOptions);
  } finally {
    $pres->dispose();
  }