在 PHP 中將 PPT 與 PPTX 轉換為 JPG
簡介
將 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) 方法取得投影片的縮圖。必須從所需的 Slide 物件呼叫
getImage方法,並將縮放比例傳入該方法。 - 取得投影片縮圖後,從縮圖物件呼叫 [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/zh-hant/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) 方法,傳入產生的檔名與影像格式。
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
foreach($pres->getSlides() as $sld) {
# 建立完整比例的影像
$slideImage = $sld->getImage(1.0, 1.0);
# 將影像以 JPEG 格式儲存至磁碟
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
將 PowerPoint PPT/PPTX 轉換為 JPG(自訂尺寸)
若要變更產生的縮圖與 JPG 影像的尺寸,可透過將 ScaleX 與 ScaleY 值傳入 Slide::getImage(float scaleX, float scaleY) 方法來設定:
$pres = new Presentation("PowerPoint-Presentation.pptx");
try {
# 定義尺寸
$desiredX = 1200;
$desiredY = 800;
# 取得 X 與 Y 的縮放值
$ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
$ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
foreach($pres->getSlides() as $sld) {
# 建立完整比例的影像
$slideImage = $sld->getImage($ScaleX, $ScaleY);
# 將影像以 JPEG 格式儲存至磁碟
try {
$slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
儲存投影片為影像時渲染註解
Aspose.Slides for PHP via Java 提供了在將投影片轉換為影像時渲染註解的功能。以下 PHP 程式碼示範了此操作:
$pres = new Presentation("presentation.pptx");
try {
$notesOptions = new NotesCommentsLayoutingOptions();
$notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
$opts = new RenderingOptions();
$opts->setSlidesLayoutOptions($notesOptions);
foreach($pres->getSlides() as $sld) {
$slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
try {
$slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
提示
Aspose 提供一個 免費的 Collage 網路應用程式。使用此線上服務,您可以合併 JPG to JPG 或 PNG to PNG 影像、建立 photo grids 等。
依照本文所述的相同原理,您也能將影像從一種格式轉換為另一種格式。更多資訊請參閱以下頁面:轉換 image to JPG;轉換 JPG to image;轉換 JPG to PNG、轉換 PNG to JPG;轉換 PNG to SVG、轉換 SVG to PNG。
常見問題
此方法是否支援批次轉換?
是的,Aspose.Slides 可在單一次操作中批次將多張投影片轉換為 JPG。
轉換是否支援 SmartArt、圖表及其他複雜物件?
是的,Aspose.Slides 會呈現所有內容,包括 SmartArt、圖表、表格、圖形等。但與 PowerPoint 相比,渲染精確度可能會因使用自訂或缺少的字型而略有差異。
處理的投影片數量是否有限制?
Aspose.Slides 本身對可處理的投影片數量沒有嚴格限制。然而,處理大型簡報或高解析度影像時,可能會遇到記憶體不足的錯誤。
另請參閱
其他將 PPT/PPTX 轉換為影像的選項包括: