Konvertera PowerPoint-bilder till PNG i JavaScript

Översikt

Den här artikeln förklarar hur du konverterar presentationsbilder till PNG‑bilder med Aspose.Slides för Node.js via Java. Du kan läsa in presentationer i format som PPT, PPTX och ODP, rendera varje bild och spara den som en separat PNG‑bild.

Exemplen nedan visar rendering med standardskala, ökning av skalan, specificering av utgångsdimensioner i pixlar samt val av en gradientrenderingsstil.

Konvertera PowerPoint till PNG

Läs in en presentation med klassen Presentation och få åtkomst till dess bilder via samlingen Presentation.getSlides. Exemplet renderar varje bild med Slide.getImage utan parametrar för att skapa en miniatyr. Därefter anropas IImage.save med ImageFormat.Png för att spara varje renderad bild som en PNG‑fil.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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

Konvertera PowerPoint till PNG med anpassade dimensioner

Skicka horisontella och vertikala skalfaktorer till Slide.getImage för att kontrollera de renderade dimensionerna. I detta exempel är båda faktorerna 2, så en bild som mäter 720 × 540 punkter ger en bild på 1440 × 1080 pixlar. Lika skalfaktorer bevarar bildens bildförhållande. Varje bild sparas i PNG‑format med IImage.save.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let scaleX = 2.0;
    let scaleY = scaleX;

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

Konvertera PowerPoint till PNG med anpassad storlek

För att ange utgångsdimensioner i pixlar, skicka en storlek till Slide.getImage istället för skalfaktorer. Detta exempel renderar varje bild i 960 × 720 pixlar och sparar resultatet med IImage.save. Välj dimensioner som matchar bildens bildförhållande för att undvika att bilden sträcks.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let imageSize = java.newInstanceSync("java.awt.Dimension", 960, 720);

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

Välj en gradientrenderingsstil

Anta att en bild innehåller gradientfyllningar, men övergångarna i den exporterade PNG‑filen ser ljusare eller på annat sätt annorlunda ut än i PowerPoint. Du kan använda metoden SaveOptions.setGradientStyle som ärvs av RenderingOptions för att välja hur gradienterna renderas.

Ladda ner gradient-styles.pptx och placera den i applikationens arbetskatalog. Dess första bild innehåller två linjära gradienter: cyan till orange högst upp och blå till gul längst ner. Varje gradient har två stopp, på 0 % och 100 %.

Följande exempel läser in denna presentation och renderar den första bilden i båda lägena med Slide.getImage.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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

    let gradientStyles = [aspose.slides.GradientStyle.Default, aspose.slides.GradientStyle.PowerPointUI];
    for (let style of gradientStyles) {
        let options = new aspose.slides.RenderingOptions();
        options.setGradientStyle(style);

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

Bilderna nedan visar resultatet från samma bild, med båda gradienterna i varje bild:

Default PowerPointUI
Cyan‑till‑orange och blå‑till‑gul gradienter renderade med Default Samma gradienter renderade med PowerPointUI

I detta exempel ger Default ljusare mellanfärger, medan PowerPointUI ger mörkare mellanfärger. Skillnaden beror på färgerna och stoppen i gradienten.

Välj Default när den standardmässiga Aspose.Slides‑utdata passar dina behov. Prova PowerPointUI när din prioritet är att matcha utseendet i PowerPoint. Jämför båda utdata med ditt önskade resultat; inget läge är generellt att föredra.

Vanliga frågor

Hur kan jag exportera en specifik form, till exempel ett diagram eller en bild, istället för hela bilden?

Aspose.Slides stöder generering av miniatyrbilder för enskilda former, vilket gör att du kan rendera en form som en PNG‑bild.

Stöds parallell konvertering på en server?

Ja. Använd en separat presentationsinstans för varje tråd eller process; dela inte en enda instans över trådar.

Vilka är begränsningarna i evalueringsläget vid export till PNG?

Evalueringsläget lägger till ett vattenmärke på utdata bilder och tillämpar andra begränsningar tills en licens har aktiverats.