Java PDF 轉圖像檔案
使用 IronPDF 的 toBufferedImages 方法,在 Java 中將 PDF 文件轉換為 JPEG、PNG 或 TIFF 等圖像格式。 載入 PDF 檔案,呼叫 toBufferedImages 以取得 BufferedImage 物件清單,然後使用 ImageIO 將每張圖片寫入磁碟。 整個轉換過程僅需不到十行的 Java 程式碼即可完成。
快速入門:在 Java 中將 PDF 轉換為圖片
-
將 IronPDF 依賴項加入您的 Maven 專案: ```xml :title=pom.xml
com.ironsoftware ironpdf 2024.9.1 -
載入您的 PDF 文件:
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/load-pdf.java PdfDocument pdf = PdfDocument.fromFile(Paths.get("document.pdf"));//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/load-pdf.java PdfDocument pdf = PdfDocument.fromFile(Paths.get("document.pdf"));JAVA - 轉換為圖片並儲存:
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-and-save.java List<BufferedImage> images = pdf.toBufferedImages(); for (int i = 0; i < images.size(); i++) { ImageIO.write(images.get(i), "PNG", new File("page_" + i + ".png")); }//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-and-save.java List<BufferedImage> images = pdf.toBufferedImages(); for (int i = 0; i < images.size(); i++) { ImageIO.write(images.get(i), "PNG", new File("page_" + i + ".png")); }JAVA
如何在 Java 中將 PDF 轉換為圖片
- 安裝 IronPDF Java 函式庫
- 使用
PdfDocument.fromFile()載入 PDF 檔案 - 呼叫 Call
toBufferedImages()以取得List - 如有需要,請使用
ToImageOptions設定輸出尺寸 - 使用
ImageIO.write()將每張圖片寫入磁碟
何謂 PDF 轉圖像,以及為何需要此功能?
PDF 轉圖像功能會將 PDF 文件的每一頁轉換為獨立的圖像檔案(JPEG、PNG 或 TIFF),這些檔案無需 PDF 檢視器即可顯示、嵌入或進行後續處理。 Java 的標準函式庫並未提供內建機制來處理此需求,這使得需要文件預覽、縮圖產生器或歸檔流程的開發者,長期以來一直面臨這個痛點。
常見用途包括為文件管理系統生成縮圖預覽、為網頁應用程式製作頁面級截圖,以及為報告或簡報提取視覺內容。 IronPDF 會在內部處理所有渲染的複雜性,因此應用程式程式碼得以保持簡潔,且無論原始 PDF 中包含字型、向量圖形或表單欄位,輸出結果皆能達到像素級的精準度。 若需執行將圖片嵌入 PDF 的反向操作,請參閱"圖片轉 PDF"操作指南。
什麼是 IronPDF for Java?它能帶來什麼幫助?
IronPDF for Java 是一款用於在基於 Maven 的專案中建立、讀取及編輯 PDF 檔案的函式庫。 開發人員可藉此將 HTML 轉為 PDF、修改現有文件,並在伺服器上無需安裝 Adobe Acrobat 或任何 PDF 檢視器的情況下,即可擷取內容。
此函式庫支援自訂頁首與頁尾、數位簽章、表單建立、密碼保護,以及多執行緒渲染。 其 PDF 轉圖像功能透過 toBufferedImages 的兩個重載方法提供簡潔的 API:一個以預設設定轉換所有頁面,另一個則接受 ToImageOptions 物件及 PageSelection 參數,用以控制解析度與頁面範圍。 如需完整功能概覽,請參閱 IronPDF for Java 文件。 如需完整的 API 參考文件,請參閱 Java API 參考文件。
除了基本的轉換功能外,IronPDF 還支援 HTML 轉 PDF 渲染、自訂浮水印、背景與前景設定,以及表單建立。 此外,該專案亦將 Maven 套件發佈至 Sonatype Maven Central 儲存庫,因此依賴項管理遵循標準的 Maven 或 Gradle 工作流程。
開始之前需要哪些先決條件?
開始翻譯前,請確認以下事項已準備就緒:
- 已安裝 Java,且路徑已設定於環境變數中。 請參閱官方 Java 安裝指南。
- 已安裝的 Java 整合開發環境 (IDE); Eclipse 或 IntelliJ 皆適用。 下載 Eclipse 或 IntelliJ IDEA。
- 整合至 IDE 的 Maven。請參閱這份 IntelliJ 的 Maven 設定教學。
- 部署至生產環境前已設定的授權金鑰。
如何安裝 IronPDF for Java?
一旦所有先決條件就緒,安裝只需宣告一項 Maven 依賴項即可。 如需詳細的設定步驟,請參閱入門文件。
開啟 JetBrains IntelliJ IDEA 並建立一個新的 Maven 專案。
將開啟一個新視窗。 輸入專案名稱並點擊"完成"。
點擊"完成"後,新專案將開啟,並預設顯示 pom.xml。 請將以下依賴項新增至該檔案。可選的 SLF4J 設定可抑制開發期間的日誌雜訊; 若您的專案已包含日誌記錄框架,請移除此項目。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/pom-dependencies.xml
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency>
</dependencies>
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/pom-dependencies.xml
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency>
</dependencies>
將依賴項新增至 pom.xml 後,編輯器的右上角會出現一個 Maven 同步圖示。
點擊同步圖示以下載 IronPDF JAR 檔案。 下載時間取決於連線速度,通常不超過兩分鐘。 安裝完成後,請參閱 Java API 參考文件,以了解所有可用方法與設定選項。 針對雲端部署目標,IronPDF 已針對 AWS、Azure 及 Google Cloud 進行過測試。
如何使用 IronPDF 將 PDF 檔案轉換為圖片?
在 PdfDocument 物件上呼叫 toBufferedImages 會產生一個 List<BufferedImage>,其中每個元素對應一個 PDF 頁面,並按頁碼升序排列。 處理結果可寫入磁碟、傳送至影像處理流程,或直接回傳至網頁回應中。
IronPDF 還能即時將 URL 和 HTML 字串轉換為 PDF,因此無需額外的渲染步驟,即可透過單一處理流程將任何網頁或已渲染的 HTML 文件以圖像形式擷取。
如何將現有的 PDF 文件轉換為圖片?
toBufferedImages 接受一個用於控制輸出尺寸的可選 ToImageOptions 參數,以及一個用於鎖定特定頁面的 PageSelection 參數。 若未傳入任何參數,所有頁面將以原始解析度進行轉換。
以下範例將 PDF 的所有頁面轉換為 PNG 檔案,並使用 ToImageOptions 將每張輸出圖片的尺寸限制在 800x500 像素:
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-pdf-to-images.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// Load the PDF document from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("business_plan.pdf"));
// Configure output image dimensions
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert all pages to BufferedImage objects with the configured dimensions
List<BufferedImage> pages = pdf.toBufferedImages(options, PageSelection.allPages());
// Write each page image to the assets/images folder (create the folder first)
int pageIndex = 1;
for (BufferedImage page : pages) {
String fileName = "assets/images/" + pageIndex++ + ".png";
ImageIO.write(page, "PNG", new File(fileName));
}
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-pdf-to-images.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// Load the PDF document from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("business_plan.pdf"));
// Configure output image dimensions
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert all pages to BufferedImage objects with the configured dimensions
List<BufferedImage> pages = pdf.toBufferedImages(options, PageSelection.allPages());
// Write each page image to the assets/images folder (create the folder first)
int pageIndex = 1;
for (BufferedImage page : pages) {
String fileName = "assets/images/" + pageIndex++ + ".png";
ImageIO.write(page, "PNG", new File(fileName));
}
}
}
輸出圖片儲存於 assets/images/ 目錄下,檔案名稱以數字開頭,從 1 開始。 請在執行程式前建立該資料夾,因為 ImageIO.write 不會自動建立缺失的目錄。 setImageMaxHeight 和 setImageMaxWidth 呼叫會為每個維度設定上限; IronPDF 會保留原始的長寬比,不會拉伸圖片。
ImageIO.write 中的格式字串從 "PNG" 變更為 "JPEG",並據此更新檔案副檔名。如需更多轉換範例,請造訪 PDF 光柵化範例頁面。
如何使用 IronPDF 將 URL 轉換為圖片?
PdfDocument.renderUrlAsPdf 會擷取 URL,透過內建的 Chromium 引擎進行渲染,並返回一個 PdfDocument,該結果可立即傳遞給 toBufferedImages。 這使得將任何公開可存取的網頁擷取為一系列圖片變得輕而易舉。
以下範例將 Amazon 產品頁面渲染為 PDF,並將生成的每頁儲存為 PNG 檔案:
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-url-to-images.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// Render a URL to a PDF document using the Chromium rendering engine
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.amazon.com");
// Configure output image dimensions
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert all pages and write to disk
List<BufferedImage> pages = pdf.toBufferedImages(options, PageSelection.allPages());
int pageIndex = 1;
for (BufferedImage page : pages) {
String fileName = "assets/images/" + pageIndex++ + ".png";
ImageIO.write(page, "PNG", new File(fileName));
}
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/convert-url-to-images.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
// Render a URL to a PDF document using the Chromium rendering engine
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.amazon.com");
// Configure output image dimensions
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert all pages and write to disk
List<BufferedImage> pages = pdf.toBufferedImages(options, PageSelection.allPages());
int pageIndex = 1;
for (BufferedImage page : pages) {
String fileName = "assets/images/" + pageIndex++ + ".png";
ImageIO.write(page, "PNG", new File(fileName));
}
}
}
若頁面需在渲染前進行驗證或使用會話 Cookie,請參閱網站登入指南。
renderUrlAsPdf 的 Chromium 渲染引擎,提供與現代桌面瀏覽器相同的 CSS 和 JavaScript 支援。 依賴客戶端 JavaScript 載入內容的頁面將能正確顯示,包括單頁應用程式。)}]如何將特定頁面轉換為圖片?
PageSelection 提供數種工廠方法,用於針對文件中的特定頁面子集進行處理,而非整個文件。 當僅需擷取封面頁、摘要部分或已知頁碼範圍時,此功能特別實用。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/page-selection.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;
public class PageSelectionExample {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Paths.get("report.pdf"));
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert only the first page (page index is zero-based)
List<BufferedImage> coverPage = pdf.toBufferedImages(options, PageSelection.singlePage(0));
ImageIO.write(coverPage.get(0), "PNG", new File("cover.png"));
// Convert pages 2 through 5 (zero-based indices 1 through 4)
List<BufferedImage> excerpt = pdf.toBufferedImages(options, PageSelection.pageRange(1, 4));
for (int i = 0; i < excerpt.size(); i++) {
ImageIO.write(excerpt.get(i), "PNG", new File("excerpt_" + (i + 1) + ".png"));
}
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-pdf-to-image-tutorial/page-selection.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;
public class PageSelectionExample {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Paths.get("report.pdf"));
ToImageOptions options = new ToImageOptions();
options.setImageMaxHeight(800);
options.setImageMaxWidth(500);
// Convert only the first page (page index is zero-based)
List<BufferedImage> coverPage = pdf.toBufferedImages(options, PageSelection.singlePage(0));
ImageIO.write(coverPage.get(0), "PNG", new File("cover.png"));
// Convert pages 2 through 5 (zero-based indices 1 through 4)
List<BufferedImage> excerpt = pdf.toBufferedImages(options, PageSelection.pageRange(1, 4));
for (int i = 0; i < excerpt.size(); i++) {
ImageIO.write(excerpt.get(i), "PNG", new File("excerpt_" + (i + 1) + ".png"));
}
}
}
PageSelection.singlePage(0) 僅針對首頁,此功能有助於生成封面縮圖。 PageSelection.pageRange(1, 4) 使用從零開始的索引提取第 2 至第 5 頁。 兩者皆返回 List<BufferedImage>,因此無論選取多少頁,迴圈模式皆完全相同。
PageSelection 中的頁面索引採用零起始編號:第一頁為 0,第二頁為 1,依此類推。 傳入超出範圍的索引時,會在執行階段拋出 IndexOutOfBoundsException 錯誤。)}]Java PDF 轉圖像的下一步是什麼?
本指南涵蓋了三種常見模式:轉換現有 PDF 的所有頁面、將 URL 擷取為一組頁面影像,以及提取指定的頁面範圍。 IronPDF 透過 ToImageOptions 和 ImageIO 處理解析度控制與格式選擇,使呼叫程式碼簡潔且易於預測。
若要繼續使用 IronPDF for Java 進行開發,請參閱以下相關資源:
- Java 光柵化範例 - 額外的 PDF 轉圖像程式碼範例
- 從 PDF 中擷取圖片與文字 - 從現有 PDF 檔案中提取嵌入的圖片
- 在 Java 中壓縮 PDF - 在儲存或傳輸前縮小檔案大小
- 自訂浮水印 - 在儲存前於輸出圖片或 PDF 上加蓋浮水印
- IronPDF for Java 文件 - 完整的 API 參考與設定指南
IronPDF for Java 提供免費開發版本。 若需進行商業部署,必須取得授權。 立即開始免費試用或查看授權方案,找出最適合您專案的方案。
準備好探索 IronPDF 的更多功能了嗎? 請參閱完整的 IronPDF for Java 教學頁面。
常見問題
如何在 Java 中將 PDF 檔案轉換為 PNG 圖片?
請使用PDF PdfDocument.fromFile(),呼叫 toBufferedImages() 以取得代表各頁面的 BufferedImage 物件清單,這些物件代表每頁內容,接著使用 ImageIO.write() 將每張圖片儲存為 PNG 檔案。
轉換 PDF 頁面時支援哪些圖像格式?
IronPDF 的 toBufferedImages 方法會傳回 BufferedImage 物件。您可以將這些物件儲存為 Java 的 ImageIO 類別所支援的任何格式,包括 PNG、JPEG 和 TIFF。
我可以只將 PDF 中的特定頁面轉換為圖片嗎?
是的。傳入一個 PageSelection 參數傳遞給 toBufferedImages。使用 PageSelection.singlePage(0) 來轉換單一頁面,或使用 PageSelection.pageRange(1, 4) 來轉換範圍。頁碼從零開始計數。
在 Java 中,PDF 轉為圖像的常見應用情境有哪些?
常見的應用情境包括:為文件管理系統生成縮圖預覽、為網頁應用程式製作頁面級截圖、為簡報提取視覺內容,以及將文件歸檔為圖像檔案,以供不支援 PDF 渲染的系統使用。
如何將 IronPDF 加入我的 Maven 專案?
請在 <dependencies> 區塊中: <dependency><groupId>com.ironsoftware</groupId><artifactId>ironpdf</artifactId><version>2024.9.1</version></dependency>
我可以直接將 URL 轉換為圖片檔案嗎?
是的。呼叫 PdfDocument.renderUrlAsPdf(url) 來使用內建的 Chromium 引擎渲染頁面,然後傳遞生成的 PdfDocument 傳遞給 toBufferedImages ,以取得頁面圖片清單。
如何控制輸出影像的解析度?
建立一個 ToImageOptions 實例,呼叫 setImageMaxHeight() 並 setImageMaxWidth() 來設定最大尺寸,然後將其作為第一個參數傳遞給 toBufferedImages。IronPDF 會保留長寬比,且不會拉伸圖片。








