PowerPoint-Folien in PNG konvertieren in PHP

Übersicht

Dieser Artikel erklärt, wie man Präsentationsfolien mithilfe von Aspose.Slides für PHP über Java in PNG‑Bilder konvertiert. Sie können Präsentationen in Formaten wie PPT, PPTX und ODP laden, jede Folie rendern und als separates PNG‑Bild speichern.

Die nachstehenden Beispiele demonstrieren das Rendern in der Standardskala, das Erhöhen der Skalierung, das Festlegen der Ausgabedimensionen in Pixeln und das Auswählen eines Gradient‑Render‑Stils.

PowerPoint in PNG konvertieren

Laden Sie eine Präsentation mit der Klasse Presentation und greifen Sie über die Sammlung Presentation::getSlides auf die Folien zu. Das Beispiel rendert jede Folie mit Slide::getImage ohne Parameter, um ein Miniaturbild zu erzeugen. Anschließend wird IImage::save mit ImageFormat::Png aufgerufen, um jede gerenderte Folie als PNG‑Bild zu speichern.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage();
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

PowerPoint in PNG mit benutzerdefinierten Abmessungen konvertieren

Geben Sie horizontale und vertikale Skalierungsfaktoren an Slide::getImage, um die gerenderten Abmessungen zu steuern. In diesem Beispiel sind beide Faktoren 2, sodass eine Folie mit den Maßen 720 – 540 Points ein Bild von 1440 – 1080 Pixel erzeugt. Gleiche Skalierungsfaktoren erhalten das Seitenverhältnis der Folie. Jedes Bild wird im PNG‑Format mit IImage::save gespeichert.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $scaleX = 2.0;
    $scaleY = $scaleX;

    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage($scaleX, $scaleY);
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

PowerPoint in PNG mit benutzerdefinierter Größe konvertieren

Um die Ausgabedimensionen in Pixeln anzugeben, übergeben Sie eine Größe an Slide::getImage anstelle von Skalierungsfaktoren. Dieses Beispiel rendert jede Folie mit 960 – 720 Pixel und speichert das Ergebnis mit IImage::save. Wählen Sie Abmessungen, die dem Seitenverhältnis der Folie entsprechen, um ein Dehnen des Bildes zu vermeiden.

use aspose\slides\ImageFormat;
use aspose\slides\Presentation;

$presentation = new Presentation("presentation.pptx");
try {
    $imageSize = new Java("java.awt.Dimension", 960, 720);

    $slideCount = java_values($presentation->getSlides()->size());
    for ($index = 0; $index < $slideCount; $index++) {
        $slide = $presentation->getSlides()->get_Item($index);
        $image = $slide->getImage($imageSize);
        try {
            $image->save("slide_" . $index . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Wählen Sie einen Gradient‑Render‑Stil

Angenommen, eine Folie enthält Farbverläufe, aber die Übergänge im exportierten PNG erscheinen heller oder anders als in PowerPoint. Sie können die Methode SaveOptions::setGradientStyle verwenden, die von RenderingOptions geerbt wird, um festzulegen, wie die Verläufe gerendert werden.

Laden Sie gradient-styles.pptx herunter und legen Sie sie im Arbeitsverzeichnis der Anwendung ab. Die erste Folie enthält zwei lineare Verläufe: Cyan zu Orange oben und Blau zu Gelb unten. Jeder Verlauf hat zwei Stopps bei 0 % und 100 %.

Das folgende Beispiel lädt diese Präsentation und rendert die gleiche erste Folie in beiden Modi mit Slide::getImage.

use aspose\slides\GradientStyle;
use aspose\slides\ImageFormat;
use aspose\slides\Presentation;
use aspose\slides\RenderingOptions;

$presentation = new Presentation("gradient-styles.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $gradientStyles = [GradientStyle::Default, GradientStyle::PowerPointUI];
    foreach ($gradientStyles as $style) {
        $options = new RenderingOptions();
        $options->setGradientStyle($style);

        $styleName = $style == GradientStyle::Default ? "Default" : "PowerPointUI";
        $image = $slide->getImage($options, 1.0, 1.0);
        try {
            $image->save("gradient-" . $styleName . ".png", ImageFormat::Png);
        } finally {
            $image->dispose();
        }
    }
} finally {
    $presentation->dispose();
}

Die Bilder unten zeigen die Ausgabe derselben Folie, mit beiden Verläufen in jedem Bild:

Default PowerPointUI
Cyan-zu-Orange- und Blau-zu-Gelb-Verläufe gerendert mit Default Die gleichen Verläufe gerendert mit PowerPointUI

In diesem Beispiel erzeugt Default hellere Zwischenfarben, während PowerPointUI dunklere Zwischenfarben erzeugt. Der Unterschied hängt von den Farben und Stopps im Verlauf ab.

Wählen Sie Default, wenn die Standardausgabe von Aspose.Slides Ihren Anforderungen entspricht. Verwenden Sie PowerPointUI, wenn Ihre Priorität darin besteht, das Aussehen in PowerPoint zu reproduzieren. Vergleichen Sie beide Ausgaben mit dem gewünschten Ergebnis; kein Modus ist allgemein vorzuziehen.

FAQ

Wie kann ich eine bestimmte Form, z. B. ein Diagramm oder Bild, statt der gesamten Folie exportieren?

Aspose.Slides unterstützt das Erzeugen von Miniaturansichten für einzelne Formen, wodurch Sie eine Form als PNG‑Bild rendern können.

Wird die parallele Konvertierung auf einem Server unterstützt?

Ja. Verwenden Sie für jeden Thread oder Prozess eine separate Präsentationsinstanz; teilen Sie keine einzelne Instanz über Threads hinweg.

Welche Einschränkungen gelten im Evaluierungsmodus beim Exportieren nach PNG?

Der Evaluierungsmodus fügt den Ausgabebildern ein Wasserzeichen hinzu und wendet weitere Einschränkungen an, bis eine Lizenz aktiviert ist.