Converti le diapositive PowerPoint in PNG in JavaScript

Panoramica

Questo articolo spiega come convertire le diapositive di una presentazione in immagini PNG utilizzando Aspose.Slides per Node.js tramite Java. È possibile caricare presentazioni in formati come PPT, PPTX e ODP, renderizzare ogni diapositiva e salvarla come immagine PNG separata.

Gli esempi seguenti dimostrano il rendering alla scala predefinita, l’aumento della scala, la specifica delle dimensioni di output in pixel e la scelta di uno stile di rendering a gradiente.

Converti PowerPoint in PNG

Carica una presentazione con la classe Presentation e accedi alle sue diapositive tramite la collezione Presentation.getSlides. L’esempio renderizza ogni diapositiva con Slide.getImage senza parametri per creare una miniatura. Quindi chiama IImage.save con ImageFormat.Png per salvare ogni diapositiva renderizzata come immagine PNG.

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();
}

Converti PowerPoint in PNG con Dimensioni Personalizzate

Passa i fattori di scala orizzontali e verticali a Slide.getImage per controllare le dimensioni del rendering. In questo esempio, entrambi i fattori sono 2, quindi una diapositiva di 720 × 540 punti produce un’immagine di 1440 × 1080 pixel. Fattori di scala uguali preservano le proporzioni della diapositiva. Ogni immagine viene salvata in formato PNG con 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();
}

Converti PowerPoint in PNG con Dimensione Personalizzata

Per specificare le dimensioni di output in pixel, passa una dimensione a Slide.getImage invece dei fattori di scala. Questo esempio renderizza ogni diapositiva a 960 × 720 pixel e salva il risultato con IImage.save. Scegli dimensioni che corrispondono al rapporto d’aspetto della diapositiva per evitare lo stiramento dell’immagine.

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();
}

Scegli uno stile di rendering a gradiente

Supponiamo che una diapositiva contenga riempimenti a gradiente, ma le transizioni nel PNG esportato appaiano più chiare o comunque diverse da quelle visualizzate in PowerPoint. È possibile utilizzare il metodo SaveOptions.setGradientStyle ereditato da RenderingOptions per scegliere come vengono renderizzati i gradienti.

Scarica gradient-styles.pptx e posizionalo nella directory di lavoro dell’applicazione. La sua prima diapositiva contiene due gradienti lineari: dal ciano all’arancione in alto e dal blu al giallo in basso. Ogni gradiente ha due fermate, allo 0% e al 100%.

L’esempio seguente carica questa presentazione e renderizza la stessa prima diapositiva in entrambi i modi con 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();
}

Le immagini seguenti mostrano l’output della stessa diapositiva, con entrambi i gradienti in ogni immagine:

Default PowerPointUI
Gradienti ciano-arancione e blu-giallo renderizzati con Default Gli stessi gradienti renderizzati con PowerPointUI

In questo esempio, Default produce colori intermedi più chiari, mentre PowerPointUI produce colori intermedi più scuri. La differenza dipende dai colori e dalle fermate del gradiente.

Scegli Default quando l’output standard di Aspose.Slides soddisfa le tue esigenze. Prova PowerPointUI quando la tua priorità è riprodurre fedelmente l’aspetto in PowerPoint. Confronta entrambi gli output con il risultato desiderato; nessuna modalità è universalmente preferibile.

FAQ

Come posso esportare una forma specifica, come un grafico o un’immagine, invece dell’intera diapositiva?

Aspose.Slides supporta la generazione di miniature per forme individuali, consentendo di renderizzare una forma come immagine PNG.

La conversione parallela è supportata su un server?

Sì. Utilizza un’istanza di presentazione separata per ogni thread o processo; non condividere un’unica istanza tra i thread.

Quali sono le limitazioni della modalità di valutazione quando si esporta in PNG?

La modalità di valutazione aggiunge una filigrana alle immagini di output e applica altre restrizioni finché non viene applicata una licenza.