如何在 Java 中預覽 PDF 文件
本文將示範如何在 Java 應用程式中使用 IronPDF 預覽 PDF 檔案。
IronPDF。
IronPDF是一個高效能的 Java 庫,提供快速且準確的操作,使其成為 PDF 相關任務(如讀取PDF 文件、提取文字和圖像、合併和分割)的絕佳選擇。
使用 IronPDF 庫,您可以從 HTML、URL 和字串建立 PDF,並實現精確的像素級渲染。
先決條件
要在 Java 中建立一個用於檢視 PDF 文件的文件檢視器,您需要做好以下準備。
- 已安裝 JDK(Java 開發工具包)和 Swing UI 框架。
- Java IDE(整合開發環境),例如 Eclipse、NetBeans 或 IntelliJ IDEA。
- IronPDF Java 庫(您可以從IronPDF 網站下載並將其包含在您的專案中)。
設定
- 在您選擇的 IDE 中建立一個新的 Java 專案。我使用的是 IntelliJ IDEA,並使用 Maven 建立了該專案。
使用 Maven 將 IronPDF 庫新增到您的專案中,方法是在專案的
pom.xml檔案中新增以下相依性:<!-- Add IronPDF dependency in your pom.xml --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>latest_version</version> </dependency><!-- Add IronPDF dependency in your pom.xml --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>latest_version</version> </dependency>XML新增必要的導入語句:
import com.ironsoftware.ironpdf.PdfDocument; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List;import com.ironsoftware.ironpdf.PdfDocument; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List;JAVA
載入 PDF 文件格式
要查看 PDF 文檔,下一步是使用PdfDocument類將 PDF 文件載入到此 Java PDF 檢視器應用程式中。
public class PDFPreview extends JFrame {
private List<String> imagePaths = new ArrayList<>();
private List<String> ConvertToImages() throws IOException {
// Load the PDF document from a file
PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
// Convert the PDF pages to a list of BufferedImages
List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
int i = 1;
// Iterate over the extracted images and save each to an image file
for (BufferedImage extractedImage : extractedImages) {
String fileName = "assets/images/" + i + ".png";
ImageIO.write(extractedImage, "PNG", new File(fileName));
// Store the file paths in the image paths list
imagePaths.add("assets/images/" + i + ".png");
i++;
}
return imagePaths;
}
}public class PDFPreview extends JFrame {
private List<String> imagePaths = new ArrayList<>();
private List<String> ConvertToImages() throws IOException {
// Load the PDF document from a file
PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
// Convert the PDF pages to a list of BufferedImages
List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
int i = 1;
// Iterate over the extracted images and save each to an image file
for (BufferedImage extractedImage : extractedImages) {
String fileName = "assets/images/" + i + ".png";
ImageIO.write(extractedImage, "PNG", new File(fileName));
// Store the file paths in the image paths list
imagePaths.add("assets/images/" + i + ".png");
i++;
}
return imagePaths;
}
}如何在 Java 中預覽 PDF 文件,圖 1:輸出的 PDF 文件 輸出的PDF文件
已轉換為影像:
如何在 Java 中預覽 PDF 文件,圖 2:將 PDF 文件轉換為圖像 將 PDF 檔案轉換為圖像
建立 PDF 檢視器窗口
現在,您可以使用 Java Swing 元件在預覽視窗中顯示轉換後的映像。
public class PDFPreview extends JFrame {
private JPanel imagePanel;
private JScrollPane scrollPane;
public PDFPreview() {
try {
// Convert the PDF to images and store the image paths
imagePaths = this.ConvertToImages();
} catch (Exception e) {
e.printStackTrace();
}
// Create imagePanel
imagePanel = new JPanel();
imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));
// Add images to the panel
for (String imagePath : imagePaths) {
ImageIcon imageIcon = new ImageIcon(imagePath);
JLabel imageLabel = new JLabel(imageIcon);
imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
imagePanel.add(imageLabel);
}
// Create the scroll pane and add imagePanel to it
scrollPane = new JScrollPane(imagePanel);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
// Set up the frame
getContentPane().add(scrollPane);
setTitle("PDF Viewer");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
}public class PDFPreview extends JFrame {
private JPanel imagePanel;
private JScrollPane scrollPane;
public PDFPreview() {
try {
// Convert the PDF to images and store the image paths
imagePaths = this.ConvertToImages();
} catch (Exception e) {
e.printStackTrace();
}
// Create imagePanel
imagePanel = new JPanel();
imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));
// Add images to the panel
for (String imagePath : imagePaths) {
ImageIcon imageIcon = new ImageIcon(imagePath);
JLabel imageLabel = new JLabel(imageIcon);
imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
imagePanel.add(imageLabel);
}
// Create the scroll pane and add imagePanel to it
scrollPane = new JScrollPane(imagePanel);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
// Set up the frame
getContentPane().add(scrollPane);
setTitle("PDF Viewer");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
}呼叫主類別建構函數
最後,將以下程式碼放入PDFPreview類別的 main 方法中:
public static void main(String[] args) {
// Run the PDF viewer in the Event Dispatch Thread
SwingUtilities.invokeLater(
PDFPreview::new
);
}public static void main(String[] args) {
// Run the PDF viewer in the Event Dispatch Thread
SwingUtilities.invokeLater(
PDFPreview::new
);
}程式碼解釋
PDFPreview繼承自JFrame,JFrame 是用來建立視窗的頂層容器。- 宣告的實例變數:
imagePanel、scrollPane和imagePaths。 ConvertToImages()函數接收 PDF 檔案example.pdf,並將其轉換為一系列影像。PdfDocument載入 PDF 檔案並將每一頁轉換為BufferedImage,然後將每一頁儲存為assets/images/目錄中的 PNG 文件,並將路徑新增至imagePaths。PDFPreview()初始化應用程式。 它呼叫ConvertToImages()來填入imagePaths。- 初始化
imagePanel並將其佈局設定為垂直盒式佈局。 - 它遍歷
imagePaths,為每個圖像創建ImageIcon,將它們添加到JLabel,並將標籤添加到imagePanel。 - 原始碼創建了
JScrollPane,並將imagePanel設定為其視口。 - 接下來,程式碼將
scrollPane加入到框架的內容窗格中,設定框架的標題,設定預設的關閉操作,打包組件,將框架居中顯示在螢幕上,並使其可見。 main()是程式的入口點。 它使用SwingUtilities.invokeLater()呼叫PDFPreview建構函數,以確保 Swing 元件在事件分發執行緒(GUI 操作專用執行緒)上建立和修改。
現在,執行該程序,PDF 文件檢視器將顯示已載入的 PDF 文件。
如何在 Java 中預覽 PDF 文件,圖 3:輸出的 PDF 文件 輸出的PDF文件
結論
本文示範如何使用 IronPDF for Java 應用程式在 Java 應用程式中預覽 PDF 文件,以及如何存取和顯示 PDF 文件。
透過 IronPDF,您可以輕鬆地將 PDF 預覽功能整合到您的 Java 應用程式中。 有關使用 IronPDF for Java 的詳細指導和範例,您可以參考此範例。 有關 Java PDF 閱讀器閱讀 PDF 文件的教程,請訪問這篇文章。
IronPDF 可免費用於開發用途。 要了解更多許可詳情,您可以訪問提供的許可頁面。 也提供免費的商業用途試用版。
常見問題解答
如何在 Java 應用程式中預覽 PDF 檔案?
您可以在 Java 應用程式中預覽 PDF 檔案,方法是使用 IronPDF for Java 將 PDF 頁面轉換為影像,然後再使用 Java Swing 元件顯示這些影像。這包括使用 PdfDocument 類載入 PDF、將頁面轉換為 BufferedImage 以及使用 JPanel 和 JScrollPane 來顯示它們。
將 PDF 函式庫整合至 Java 專案的步驟為何?
若要將 IronPDF 整合到您的 Java 專案中,請在專案的 pom.xml 檔案中包含該函式庫,並將其作為 Maven 的依賴項目,群組 ID 為「com.ironsoftware」,工件 ID 為「ironpdf」。確保您已安裝 JDK 和 Java IDE。
如何使用 Java 將 PDF 頁面轉換成影像?
使用 IronPDF,您可以通過使用 PdfDocument 類載入 PDF 文檔,並將每頁轉換為 BufferedImage 來將 PDF 頁面轉換成圖片。然後,這些圖片可以儲存為 PNG 檔案,以供進一步使用。
將 PDF 頁面顯示成影像需要哪些 Java 元件?
要在 Java 中將 PDF 頁面顯示成圖片,您可以使用 Java Swing 元件,特別是 JPanel 來放置圖片,以及 JScrollPane 來允許捲動圖片。
在 Java 中建立 PDF 檢視器時,為什麼事件派送線程很重要?
Event Dispatch Thread (EDT) 非常重要,因為它可以確保所有 Swing 元件都是在專用的線程中製作和修改,以進行 GUI 作業,防止 Java 應用程式中可能出現的線程問題。
IronPDF for Java 可以不經授權使用開發嗎?
是的,IronPDF 可在開發過程中免費使用。此外,IronPDF 也提供免費試用版供商業用途使用,讓您可以在購買授權之前探索其功能。
我在哪裡可以找到在 Java 中使用 IronPDF 的其他資源?
在 Java 中使用 IronPDF 的其他資源、範例和教學可在 IronPDF 網站上找到。這些資源包括從 HTML 建立 PDF 的指南以及各種 PDF 操作技術。
將 PDF 頁面轉換為影像並在 Java Swing 中顯示的流程為何?
要使用 IronPDF 將 PDF 頁面轉換成圖片,請使用 PdfDocument 載入 PDF,將每頁轉換成 BufferedImage 並將它們儲存為 PNG 檔案。在 Java Swing 應用程式中,使用 JPanel 和 JScrollPane 顯示這些影像。







