Präsentation speichern

Überblick

Die Presentation Klasse enthält den Inhalt einer Präsentation. Ob Sie eine Präsentation von Grund auf neu erstellen oder eine bestehende ändern, am Ende möchten Sie die Präsentation speichern. Mit Aspose.Slides für PHP über Java kann sie als Datei oder Stream gespeichert werden. Dieser Artikel erklärt, wie man eine Präsentation auf verschiedene Arten speichert:

Präsentation in eine Datei speichern

Um eine Präsentation in eine Datei zu speichern, rufen Sie die Presentation Klasse Save Methode auf. Übergeben Sie einfach den Dateinamen und SaveFormat an die Save Methode.

Die folgenden Beispiele zeigen, wie man eine Präsentation mit Aspose.Slides für PHP über Java speichert.

  # Instanziieren Sie ein Presentation-Objekt, das eine PPT-Datei repräsentiert
  $pres = new Presentation();
  try {
    # ...hier arbeiten...
    # Speichern Sie Ihre Präsentation in einer Datei
    $pres->save("demoPass.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Präsentation in einen Stream speichern

Es ist möglich, eine Präsentation in einen Stream zu speichern, indem man einen Ausgabestrom an die Presentation Klasse Save Methode übergibt. Es gibt viele Arten von Streams, in die eine Präsentation gespeichert werden kann. Im folgenden Beispiel haben wir eine neue Präsentationsdatei erstellt, Text in eine Form hinzugefügt und die Präsentation in den Stream gespeichert.

  # Instanziieren Sie ein Presentation-Objekt, das eine PPT-Datei repräsentiert
  $pres = new Presentation();
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 200, 200, 200);
    # Text zur Form hinzufügen
    $shape->getTextFrame()->setText("Dieses Beispiel zeigt, wie man eine PowerPoint-Datei erstellt und sie in einen Stream speichert.");
    $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();
    }
  }

Präsentation mit vordefiniertem Ansichtstyp speichern

Aspose.Slides für PHP über Java bietet die Möglichkeit, den Ansichtstyp für die generierte Präsentation festzulegen, wenn sie in PowerPoint über die ViewProperties Klasse geöffnet wird. Die setLastView Eigenschaft wird verwendet, um den Ansichtstyp mithilfe des ViewType Enumerators festzulegen.

  # Öffnen der Präsentationsdatei
  $pres = new Presentation();
  try {
    # Einstellung des Ansichtstyps
    $pres->getViewProperties()->setLastView(ViewType::SlideMasterView);
    # Speichern der Präsentation
    $pres->save("newDemo.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Präsentationen im strengen Office Open XML-Format speichern

Aspose.Slides ermöglicht es Ihnen, die Präsentation im strengen Office Open XML-Format zu speichern. Zu diesem Zweck bietet es die PptxOptions Klasse, in der Sie die Conformance Eigenschaft beim Speichern der Präsentationsdatei festlegen können. Wenn Sie ihren Wert auf Conformance.Iso29500_2008_Strict festlegen, wird die Ausgabedatei der Präsentation im strengen Open XML-Format gespeichert.

Der folgende Beispielcode erstellt eine Präsentation und speichert sie im strengen Office Open XML-Format. Beim Aufrufen der Save Methode für die Präsentation wird das PptxOptions Objekt mit der Conformance-Eigenschaft, die auf Conformance.Iso29500_2008_Strict eingestellt ist, übergeben.

  # Instanziieren Sie ein Presentation-Objekt, das eine PPT-Datei repräsentiert
  $pres = new Presentation();
  try {
    # Holen Sie sich die erste Folie
    $slide = $pres->getSlides()->get_Item(0);
    # Fügen Sie eine Autohilfe vom Typ Linie hinzu
    $slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
    #Setzen Sie die Speicheroptionen für das strenge Office Open XML-Format
    $options = new PptxOptions();
    $options->setConformance(Conformance->Iso29500_2008_Strict);
    # Speichern Sie Ihre Präsentation in einer Datei
    $pres->save("demoPass.pptx", SaveFormat::Pptx, $options);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Präsentationen im Office Open XML-Format im Zip64-Modus speichern

Eine Office Open XML-Datei ist ein ZIP-Archiv, das eine Grenze von 4 GB (2^32 Bytes) für die unkomprimierte Dateigröße, die komprimierte Dateigröße und die Gesamtgröße des Archivs sowie eine Grenze von 65.535 (2^16-1) Dateien im Archiv hat. Die ZIP64-Format-Erweiterungen erhöhen die Grenzen auf 2^64.

Die neue IPptxOptions.Zip64Mode Eigenschaft ermöglicht es Ihnen zu entscheiden, wann die ZIP64-Format-Erweiterungen für die gespeicherte Office Open XML-Datei verwendet werden sollen.

Diese Eigenschaft bietet die folgenden Modi:

  • Zip64Mode.IfNecessary bedeutet, dass die ZIP64-Format-Erweiterungen nur verwendet werden, wenn die Präsentation außerhalb der oben genannten Einschränkungen fällt. Dies ist der Standardmodus.
  • Zip64Mode.Never bedeutet, dass ZIP64-Format-Erweiterungen nicht verwendet werden.
  • Zip64Mode.Always bedeutet, dass ZIP64-Format-Erweiterungen immer verwendet werden.

Der folgende Code zeigt, wie man die Präsentation im PPTX-Format mit ZIP64-Format-Erweiterungen speichert:

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

Speichern von Fortschrittsaktualisierungen in Prozent

Das neue IProgressCallback Interface wurde zum ISaveOptions Interface und zur SaveOptions abstrakten Klasse hinzugefügt. Das IProgressCallback Interface stellt ein Callback-Objekt zur Verfügung, um Fortschrittsaktualisierungen in Prozent zu speichern.

Die folgenden Codebeispiele zeigen, wie das IProgressCallback Interface verwendet wird:

  class ExportProgressHandler {
    function reporting($progressValue) {
      # Verwenden Sie den Fortschrittsprozentwert hier
      $progress = java("java.lang.Double")->valueOf($progressValue)->intValue();
      echo($progress . "% Datei konvertiert");
    }
  }

  # Öffnen der Präsentationsdatei
  $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();
  }