Konwertuj slajdy PowerPoint na PNG w JavaScript
Przegląd
Ten artykuł wyjaśnia, jak konwertować slajdy prezentacji na obrazy PNG przy użyciu Aspose.Slides dla Node.js w języku Java. Możesz wczytywać prezentacje w formatach takich jak PPT, PPTX i ODP, renderować każdy slajd i zapisywać go jako osobny obraz PNG.
Poniższe przykłady pokazują renderowanie w domyślnej skali, zwiększanie skali, określanie wymiarów wyjściowych w pikselach oraz wybór stylu renderowania gradientu.
Konwertuj PowerPoint do PNG
Załaduj prezentację przy użyciu klasy Presentation i uzyskaj dostęp do jej slajdów poprzez kolekcję Presentation.getSlides. Przykład renderuje każdy slajd za pomocą Slide.getImage bez parametrów, aby utworzyć miniaturkę. Następnie wywołuje IImage.save z ImageFormat.Png, aby zapisać każdy wyrenderowany slajd jako obraz 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();
}
Uwaga
Przeciążenie Slide.getImage bez parametrów renderuje w skali 0,2. Na przykład slajd o wymiarach 720 × 540 punktów generuje miniaturkę 144 × 108 pikseli. Aby kontrolować wymiary wyjściowe, użyj przeciążeń ze współczynnikami skali lub podaj explicite rozmiar obrazu, jak pokazano poniżej.Konwertuj PowerPoint do PNG z własnymi wymiarami
Przekaż poziome i pionowe współczynniki skali do Slide.getImage, aby kontrolować wymiary renderowanego obrazu. W tym przykładzie oba współczynniki wynoszą 2, więc slajd o wymiarach 720 × 540 punktów generuje obraz 1440 × 1080 pikseli. Równe współczynniki skali zachowują proporcje slajdu. Każdy obraz jest zapisywany w formacie PNG przy użyciu 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();
}
Konwertuj PowerPoint do PNG z niestandardowym rozmiarem
Aby określić wymiary wyjściowe w pikselach, przekaż rozmiar do Slide.getImage zamiast współczynników skali. Ten przykład renderuje każdy slajd w rozmiarze 960 × 720 pikseli i zapisuje wynik przy użyciu IImage.save. Dobierz wymiary tak, aby zachować proporcje slajdu, aby uniknąć rozciągnięcia obrazu.
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();
}
Wybierz styl renderowania gradientu
Załóżmy, że slajd zawiera wypełnienia gradientowe, ale przejścia w wyeksportowanym PNG wyglądają jaśniej lub inaczej niż w PowerPoint. Możesz użyć metody SaveOptions.setGradientStyle dziedziczonej po RenderingOptions, aby wybrać sposób renderowania gradientów.
Pobierz gradient-styles.pptx i umieść go w katalogu roboczym aplikacji. Jej pierwszy slajd zawiera dwa gradienty liniowe: cyjan do pomarańczowego u góry oraz niebieski do żółtego na dole. Każdy gradient ma dwa przystanki, przy 0 % i 100 %.
Poniższy przykład wczytuje tę prezentację i renderuje ten sam pierwszy slajd w obu trybach przy użyciu 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();
}
Obrazy poniżej prezentują wynik tego samego slajdu, z oboma gradientami w każdym obrazie:
| Default | PowerPointUI |
|---|---|
![]() |
![]() |
W tym przykładzie Default generuje jaśniejsze kolory pośrednie, natomiast PowerPointUI – ciemniejsze. Różnica zależy od kolorów i przystanków w gradiencie.
Wybierz Default, gdy standardowy wynik Aspose.Slides spełnia Twoje potrzeby. Spróbuj PowerPointUI, gdy priorytetem jest dopasowanie wyglądu do PowerPoint. Porównaj oba wyniki z oczekiwanym rezultatem; żaden tryb nie jest uniwersalnie lepszy.
FAQ
Jak mogę wyeksportować konkretny kształt, np. wykres lub obraz, zamiast całego slajdu?
Aspose.Slides obsługuje generowanie miniatur dla poszczególnych kształtów, umożliwiając renderowanie wybranego kształtu jako obrazu PNG.
Czy konwersja równoległa jest wspierana na serwerze?
Tak. Używaj osobnej instancji prezentacji dla każdego wątku lub procesu; nie udostępniaj jednej instancji między wątkami.
Jakie są ograniczenia wersji ewaluacyjnej przy eksporcie do PNG?
Tryb ewaluacyjny dodaje znak wodny do wyjściowych obrazów i nakłada inne ograniczenia, dopóki nie zostanie zastosowana licencja.

