PowerPoint-Folien in PNG konvertieren in Java

Übersicht

Dieser Artikel erklärt, wie Präsentationsfolien mit Aspose.Slides für Java in PNG‑Bilder konvertiert werden. 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 zeigen das Rendern in der Standardskala, das Erhöhen der Skalierung, das Festlegen der Ausgabedimensionen in Pixeln und die Auswahl eines Gradienten‑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 ISlide.getImage ohne Parameter, um ein Thumbnail zu erstellen. Anschließend wird IImage.save mit ImageFormat.Png aufgerufen, um jede gerenderte Folie als PNG‑Bild zu speichern.

import com.aspose.slides.*;

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

PowerPoint in PNG mit benutzerdefinierten Abmessungen konvertieren

Übergeben Sie horizontale und vertikale Skalierungsfaktoren an ISlide.getImage, um die gerenderten Abmessungen zu steuern. In diesem Beispiel sind beide Faktoren 2, sodass eine Folie mit 720 × 540 Punkten ein Bild von 1440 × 1080 Pixeln erzeugt. Gleiche Skalierungsfaktoren erhalten das Seitenverhältnis der Folie. Jedes Bild wird im PNG‑Format mit IImage.save gespeichert.

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    float scaleX = 2f;
    float scaleY = scaleX;

    int slideCount = presentation.getSlides().size();
    for (int index = 0; index < slideCount; index++) {
        ISlide slide = presentation.getSlides().get_Item(index);
        IImage 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 ISlide.getImage , anstatt Skalierungsfaktoren zu verwenden. Dieses Beispiel rendert jede Folie mit 960 × 720 Pixeln 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.

import com.aspose.slides.*;
import java.awt.Dimension;

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

    int slideCount = presentation.getSlides().size();
    for (int index = 0; index < slideCount; index++) {
        ISlide slide = presentation.getSlides().get_Item(index);
        IImage image = slide.getImage(imageSize);
        try {
            image.save("slide_" + index + ".png", ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

Wählen Sie einen Gradienten‑Render‑Stil

Angenommen, eine Folie enthält Farbverläufe, aber die Übergänge im exportierten PNG erscheinen heller oder anderweitig unterschiedlich zu dem, was Sie in PowerPoint sehen. 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 ISlide.getImage.

import com.aspose.slides.*;

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

    int[] gradientStyles = { GradientStyle.Default, GradientStyle.PowerPointUI };
    for (int style : gradientStyles) {
        RenderingOptions options = new RenderingOptions();
        options.setGradientStyle(style);

        String styleName = style == GradientStyle.Default ? "Default" : "PowerPointUI";
        IImage image = slide.getImage(options, 1f, 1f);
        try {
            image.save("gradient-" + styleName + ".png", ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

Die untenstehenden Bilder zeigen die Ausgabe derselben Folie, jeweils mit beiden Verläufen im 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. Probieren Sie PowerPointUI, wenn es Ihnen wichtig ist, das Aussehen in PowerPoint zu treffen. Vergleichen Sie beide Ausgaben mit dem gewünschten Ergebnis; keine der beiden Optionen ist allgemein vorzuziehen.

FAQ

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

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

Wird parallele Konvertierung auf einem Server unterstützt?

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

Welche Einschränkungen gelten im Evaluationsmodus beim Export nach PNG?

Im Evaluationsmodus wird den Ausgabebildern ein Wasserzeichen hinzugefügt und es werden weitere Einschränkungen angewendet, bis eine Lizenz aktiviert ist.