在 JavaScript 中將 PPT 與 PPTX 轉換為 JPG
Contents
[
Hide
]
簡介
將 PowerPoint 與 OpenDocument 簡報轉換為 JPG 影像有助於共享投影片、優化效能,並將內容嵌入網站或應用程式中。Aspose.Slides 允許您將 PPTX、PPT 與 ODP 檔案轉換為高品質的 JPEG 影像。本指南說明了不同的轉換方法。
有了這些功能,您可以輕鬆實作自己的簡報檢視器,並為每張投影片建立縮圖。如果您想防止投影片被複製或以唯讀模式展示簡報,這將非常有用。Aspose.Slides 支援將整個簡報或特定投影片轉換為影像格式。
將 PowerPoint PPT/PPTX 轉換為 JPG
以下是將 PPT/PPTX 轉換為 JPG 的步驟:
- 建立 Presentation 類型的實例。
- 從 Presentation.getSlides() 集合中取得 Slide 類型的投影片物件。
- 為每張投影片建立縮圖,然後將其轉換為 JPG。使用 Slide.getImage(float scaleX, float scaleY) 方法取得投影片的縮圖,該方法會回傳 Imagess 物件。必須在所需的 Slide 類型投影片上呼叫 getImage 方法,並將縮圖的比例參數傳入該方法。
- 取得投影片縮圖後,從縮圖物件呼叫 IImage.save(String formatName, int imageFormat) 方法,並傳入檔案名稱與影像格式。
注意:PPT/PPTX 轉換為 JPG 與 Aspose.Slides API 中轉換為其他類型的方式不同。對於其他類型,通常使用 Presentation.Save(String fname, int format, ISaveOptions options) 方法,但此處需要使用 IImage.save(String formatName, int imageFormat) 方法。
var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx");
try {
for (let i = 0; i < pres.getSlides().size(); i++) {
let sld = pres.getSlides().get_Item(i);
// 建立完整比例的影像
var slideImage = sld.getImage(1.0, 1.0);
// 將影像以 JPEG 格式儲存至磁碟
try {
slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
將 PowerPoint PPT/PPTX 轉換為具有自訂尺寸的 JPG
若要變更產生的縮圖與 JPG 影像的尺寸,您可以在呼叫 Slide.getImage(float scaleX, float scaleY) 方法時傳入 ScaleX 與 ScaleY 值:
var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx");
try {
// 定義尺寸
var desiredX = 1200;
var desiredY = 800;
// 取得 X 與 Y 的比例值
var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX;
var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY;
for (let i = 0; i < pres.getSlides().size(); i++) {
let sld = pres.getSlides().get_Item(i);
// 建立完整比例的影像
var slideImage = sld.getImage(ScaleX, ScaleY);
// 將影像以 JPEG 格式儲存至磁碟
try {
slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
在將簡報儲存為影像時呈現註解
Aspose.Slides for Node.js via Java 提供一項功能,可在將投影片轉換為影像時呈現簡報中的註解。以下 JavaScript 程式碼示範此操作:
var pres = new aspose.slides.Presentation("presentation.pptx");
try {
var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions();
notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated);
var opts = new aspose.slides.RenderingOptions();
opts.setSlidesLayoutOptions(notesOptions);
for (let i = 0; i < pres.getSlides().size(); i++) {
let sld = pres.getSlides().get_Item(i);
var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960));
try {
slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber()));
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
另請參閱
其他將 PPT/PPTX 轉換為影像的選項包括:
常見問題
此方法是否支援批次轉換?
是的,Aspose.Slides 允許在一次操作中將多張投影片批次轉換為 JPG。
轉換是否支援 SmartArt、圖表和其他複雜物件?
是的,Aspose.Slides 會呈現所有內容,包括 SmartArt、圖表、表格、形狀等。但與 PowerPoint 相比,渲染精確度可能會略有差異,特別是在使用自訂或缺少的字型時。
處理的投影片數量有任何限制嗎?
Aspose.Slides 本身並未對可處理的投影片數量設置嚴格限制。但在處理大型簡報或高解析度影像時,可能會遇到記憶體不足的錯誤。