Сохранить Презентацию

Обзор

Класс Презентация хранит содержимое презентации. Независимо от того, создаете ли вы презентацию с нуля или модифицируете существующую, по завершении вы захотите сохранить презентацию. С помощью Aspose.Slides для PHP через Java ее можно сохранить в виде файла или потока. Эта статья объясняет, как сохранить презентацию различными способами:

Сохранение Презентации в Файл

Сохраните презентацию в файл, вызвав метод Save класса Презентация. Просто передайте имя файла и 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, представляющего 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 во время сохранения файла презентации. Если вы установите его значение как Conformance.Iso29500_2008_Strict, тогда выходной файл презентации будет сохранен в строгом формате Open XML.

Следующий пример кода создает презентацию и сохраняет ее в строгом формате Office Open XML. При вызове метода Save для презентации объект PptxOptions передается в него с установленным свойством Conformance как 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();
  }