使用 GroupDocs Viewer for Java 將 PDF 轉換為 PNG

在本完整指南中,您將了解 如何將 PDF 轉換為 PNG,並在 Java 中保持每頁的原始尺寸。保留原始頁面大小對於法律文件、品牌一致的行銷資產以及任何縮放都會破壞測量的技術圖表至關重要。我們將逐步說明如何安裝 GroupDocs.Viewer、設定渲染選項,並排除常見問題,讓您每次都能產生像素完美的 PNG 圖片。

Render PDFs in Original Size with GroupDocs.Viewer for Java

快速解答

  • 什麼程式庫可以在 Java 中將 PDF 轉換為 PNG? GroupDocs.Viewer for Java 提供直接的 API 用於 convert pdf to png
  • 如何保留原始頁面大小?PdfOptions 物件上呼叫 setRenderOriginalPageSize(true)
  • 我在正式環境需要授權嗎? 是 – 正式使用需取得永久或臨時的 GroupDocs 授權。
  • 我可以渲染受密碼保護的 PDF 嗎? 當然可以;在建立 Viewer 實例時提供密碼。
  • 需要哪個 Java 版本? 完全支援 JDK 8 或更高版本。

什麼是「以原始尺寸渲染 PDF」?

以原始尺寸渲染 PDF 表示在不進行任何縮放的情況下,將每頁匯出為其精確的尺寸。渲染 PDF 時,檢視器可以將頁面縮放以符合目標格式,或保留來源檔案中定義的精確尺寸。以原始尺寸渲染即每頁以像素完美的方式匯出,這對於法律文件、檔案保存資料以及任何無法妥協版面忠實度的情境至關重要。

為何要保留 PDF 頁面大小?

保留原始 PDF 頁面大小可確保視覺版面、精確測量與設計元素在轉換後保持不變,這對於法律合規、品牌一致性以及圖表或表單中的技術精度至關重要。它同時防止圖形意外裁切或變形,確保簽名與浮水印在所有平台上皆能如預期般正確顯示。

前置條件

  • Java Development Kit (JDK): 8 版或更新版本。
  • GroupDocs.Viewer for Java: 透過 Maven 新增此函式庫(請參考下方)。
  • IDE: IntelliJ IDEA、Eclipse,或任何相容 Java 的編輯器。

設定 GroupDocs.Viewer for Java

Maven 設定

將官方的 GroupDocs 儲存庫與 Viewer 相依性加入您的 pom.xml 中。(請勿修改程式碼區塊——必須保持原樣。)

<repositories>
   <repository>
      <id>groupdocs-repo</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

取得授權

GroupDocs 提供三種授權方案:Free Trial(頁數無限制、時間有限)、Temporary License(完整功能,最長 30 天)以及 Permanent Purchase(無限制的正式環境使用)。請選擇符合您專案時程的方案。

實作指南

步驟 1:初始化 GroupDocs.Viewer

Viewer 是 GroupDocs.Viewer 的核心類別,用於載入文件並提供渲染功能。建立 Viewer 實例並設定 PngViewOptionsPngViewOptions 定義將頁面渲染為 PNG 圖片的設定。關鍵呼叫 viewOptions.getPdfOptions().setRenderOriginalPageSize(true); 會指示引擎 設定為原始頁面大小

import com.groupdocs.viewer.Viewer;
import com.groupdocs.viewer.options.PngViewOptions;

import java.nio.file.Path;

public class RenderOriginalPageSize {
    public static void main(String[] args) {
        // Define output directory path for rendered pages
        Path outputDirectory = Path.of("YOUR_OUTPUT_DIRECTORY");
        
        // Format for the output page file paths
        String pageFilePathFormat = "page_{0}.png";
        Path pageFilePath = outputDirectory.resolve(pageFilePathFormat);
        
        // Initialize PngViewOptions with the path format
        PngViewOptions viewOptions = new PngViewOptions(pageFilePath.toString());
        
        // Set option to render original page size for PDF documents
        viewOptions.getPdfOptions().setRenderOriginalPageSize(true);
        
        // Create a Viewer instance for the source PDF document
        try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_PDF")) {
            // Render the PDF using the specified options
            viewer.view(viewOptions);
        }
    }
}

關鍵程式碼說明

  • 路徑設定: 決定每個渲染出的 PNG 檔案儲存位置。
  • PngViewOptions: 選擇 PNG 作為輸出格式(典型的 pdf to png java 情境)。
  • Render Original Page Size: 確保不進行縮放,保留每個 PDF 頁面的精確尺寸。

步驟 2:執行與驗證

載入您的 PDF,呼叫渲染程序,然後檢查產生的 PNG 檔案。圖片應與原始 PDF 頁面尺寸逐像素相符。若圖片出現拉伸,請再次確認已加入 setRenderOriginalPageSize(true),且使用的是最新的 GroupDocs.Viewer 版本。

疑難排解與常見陷阱

  • 檔案路徑不正確: 確保 outputDirectory 與來源 PDF 路徑為絕對路徑或相對於專案的正確路徑。
  • 缺少授權: 若未取得有效授權,渲染可能會退回至限制頁數的試用模式。
  • 大型 PDF 記憶體不足錯誤: 增加 JVM 堆積大小(例如 -Xmx2g 或更高),或啟用頁面延遲載入。
  • 加密 PDF: 在建立 Viewer 實例時提供密碼,以避免 pdf rendering troubleshooting 錯誤。

實務應用案例

  1. 數位檔案保存: 保留歷史掃描檔且不產生任何失真。
  2. 法律文件平台: 提供與提交文件完全相同顯示的法庭就緒 PDF。
  3. 線上學習平台: 將教科書轉為影像格式,同時保持版面完整。
  4. 發票自動化: 確保項目與金額在轉換後仍清晰可讀。

效能建議

  • 記憶體管理: 為大型文件分配足夠的堆積空間。
  • 延遲載入: 盡可能僅渲染所需頁面,而非整個檔案。
  • 快取: 為常存取的 PDF 儲存已渲染的 PNG,以避免重複處理。

常見問答

Q: 如何將 GroupDocs.Viewer 與 Spring Boot 整合?
A: 將 Viewer 註冊為 Spring Bean,於需要的地方注入,並讓 Spring 管理其生命週期以確保執行緒安全的重複使用。

Q: 我可以將 PDF 渲染為 PNG 以外的格式嗎?
A: 可以 – GroupDocs.Viewer 亦支援 JPEG、SVG 以及 PDF 轉 HTML 的轉換。

Q: 若渲染過程拋出例外,我該怎麼辦?
A: 檢查堆疊追蹤以找出缺少的檔案路徑或授權問題,並確認 PDF 檔案未損壞。

Q: 可渲染的 PDF 有尺寸限制嗎?
A: 技術上沒有限制,但極大檔案可能需要增加 JVM 記憶體,且可考慮分割成較小的部分。

Q: GroupDocs.Viewer 能處理受密碼保護的 PDF 嗎?
A: 當然可以 – 只需在 Viewer 建構子或 LoadOptions 物件中傳入密碼即可。

資源


最後更新: 2026-06-25
測試環境: GroupDocs.Viewer 25.2 for Java
作者: GroupDocs


相關教學