使用 GroupDocs.Viewer 於 Java 轉換 docx 為 pdf – 完整指南

如果您需要快速且可靠地 convert docx pdf java,您來對地方了。在本教學中,我們將示範如何使用 GroupDocs.Viewer for Java 將您的 DOCX、XLSX、PPTX 以及其他多種格式轉換為高品質的 PDF。您將了解為何此函式庫在企業文件工作流程中深受青睞,以及如何將其整合到您自己的 Java 專案中。

使用 GroupDocs.Viewer for Java 轉換文件為 PDF

使用 GroupDocs.Viewer for Java 轉換文件為 PDF

快速解答

  • What does “convert docx pdf java” mean? 這表示以 Java 程式碼將 DOCX 檔案程式化地轉換為 PDF。
  • Which library handles this best? GroupDocs.Viewer for Java 只需少量程式碼即可提供可靠的渲染。
  • Do I need a license? 免費試用可用於測試;正式環境需付費授權。
  • Can I batch‑process many files? 可以 — 結合 Viewer API 與 Java 並發工具即可實現高吞吐量的批次轉換。
  • Is the output PDF secure? 產生的 PDF 不含嵌入式巨集,因而安全可供分發。

什麼是 convert docx pdf java?

在 Java 環境中載入 DOCX 檔案並輸出保留原始版面配置、字型與影像的 PDF。此轉換對於歸檔、分享或在未安裝 Microsoft Office 的平台上顯示文件至關重要。它亦確保嵌入的字型與向量圖形得以保留,使最終的 PDF 適合列印與數位發佈。

為何使用 GroupDocs.Viewer 於 Java 渲染文件為 PDF?

GroupDocs.Viewer 專為在伺服器上無需 Microsoft Office 即可將文件渲染為 PDF(以及其他可檢視格式)而設計。它支援 超過 100 種輸入格式,可處理 數百頁的檔案,同時將記憶體使用量控制在 150 MB 以下,並提供像素級的完美還原——非常適合高容量、企業級的應用。

前置條件

  • Java Development Kit (JDK) 8+ 已安裝並設定。
  • Maven 用於相依管理。
  • 具備 Java 檔案 I/O 與 Maven pom.xml 的基本認識。

設定 GroupDocs.Viewer for Java

將儲存庫與相依項目加入您的 Maven pom.xml

<!-- Maven dependency for GroupDocs.Viewer -->
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-viewer</artifactId>
    <version>25.2</version>
</dependency>

取得授權

GroupDocs 提供免費試用、暫時評估授權以及完整購買方案。無論選擇哪種方式,都請確保授權檔案放置於應用程式可載入的位置(例如 classpath)。

如何 convert docx pdf java – 步驟指南

轉換流程包含三個主要步驟:指定輸出位置、以來源文件初始化 Viewer,並使用 PDF 選項呼叫 view 操作。遵循此順序可確保可靠的渲染、正確的資源清理,以及即使在大批次處理時也能獲得最佳效能。

直接答案

使用 new FileInputStream("input.docx") 載入 DOCX,建立 Viewer 實例,並呼叫 viewer.view(new PdfViewOptions(outputPath))。此三步驟模式可在一般檔案下於一秒內完成 PDF 轉換,並在結合 Java 的執行緒服務時可擴展至大批次處理。

步驟 1:定義輸出路徑

設定渲染後 PDF 的儲存位置。此路徑可根據使用者輸入或設定動態決定。

String outputPath = "C:/converted/output.pdf";

步驟 2:初始化 Viewer 並渲染文件

Viewer 為 GroupDocs.Viewer 的核心類別,負責載入文件並提供渲染功能。建立指向來源 DOCX(或任何支援格式)的 Viewer 實例,並呼叫 view 方法。

try (Viewer viewer = new Viewer("C:/source/document.docx")) {
    PdfViewOptions options = new PdfViewOptions(outputPath);
    viewer.view(options);
}

PDF 會出現在您先前定義的資料夾中,可供下載或進一步處理。

工具:管理輸出目錄

此小工具會在寫入檔案前確保輸出資料夾已存在。ensureDirectoryExists 會檢查路徑並建立缺失的資料夾。

private static void ensureDirectoryExists(String path) {
    File dir = new File(path).getParentFile();
    if (!dir.exists()) {
        dir.mkdirs();
    }
}

render document pdf java – 常見使用情境

  • Document Archiving: 將舊版 Office 檔案轉換為 PDF 以進行長期保存。
  • Web Publishing: 即時產生報告、發票或使用者可下載內容的 PDF。
  • Secure Sharing: 移除巨集並將內容嵌入唯讀 PDF。
  • System Integration: 結合 CRM 或 ERP 工作流程,自動從範本產生 PDF。
  • Batch Processing: 迭代資料夾內的檔案,對每個檔案呼叫 Viewer API。

大檔案效能最佳化建議

  • Memory Management: 使用 try‑with‑resources(如範例所示)即時關閉串流。
  • Threading: 轉換大量檔案時,於不同執行緒中處理,但需限制併發數以避免記憶體不足。
  • Option Tuning: 調整 PdfViewOptions(例如影像品質)以在速度與還原度之間取得平衡。對於超過 200 頁的檔案,設定 options.setRenderMode(RenderMode.Stream) 以串流頁面並降低堆積記憶體使用。

常見問題

Q: 如何排除 GroupDocs.Viewer 的渲染問題?
A: 請確認 Maven 相依性、確保所需字型已安裝,並檢查例外訊息以了解不支援的功能。官方文件列出錯誤代碼與建議的修正方式。

Q: 我可以使用 GroupDocs.Viewer 將受密碼保護的文件渲染為 PDF 嗎?
A: 可以。請透過接受 LoadOptions 物件的 Viewer 建構子重載提供密碼。

Q: GroupDocs.Viewer 支援哪些格式轉換為 PDF?
A: 它支援 DOCX、XLSX、PPTX、PDF、HTML、TXT,以及 50+ 其他格式,包括 ODT、MHTML 及各種影像類型。

Q: 如何提升大型文件的轉換效能?
A: 啟用串流選項、分批處理檔案,並監控 JVM 堆積使用量。將 -Xmx 參數提升至 2 GB 可協助處理極大型檔案。

Q: GroupDocs.Viewer 適用於企業應用嗎?
A: 絕對適用。它專為高吞吐量、多租戶環境設計,且提供可隨使用量擴展的授權模式。

資源

最後更新: 2026-07-05
測試環境: GroupDocs.Viewer 25.2
作者: GroupDocs

<repositories>
   <repository>
      <id>repository.groupdocs.com</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>
String outputFilePath = "YOUR_OUTPUT_DIRECTORY/output.pdf";
PdfViewOptions viewOptions = new PdfViewOptions(outputFilePath);
try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    viewer.view(viewOptions); // Renders the document using specified options
}
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;

public static Path getOutputDirectoryPath(String folderName) {
    Path outputDirectory = Paths.get("YOUR_OUTPUT_DIRECTORY", folderName);
    
    try {
        Files.createDirectories(outputDirectory); // Create directory if it doesn't exist
    } catch (IOException e) {
        e.printStackTrace(); // Handle I/O exceptions gracefully
    }
    
    return outputDirectory;
}

相關教學