使用 GroupDocs Conversion Java for Word 嵌入字體至 PDF

在本完整教學中,您將了解 GroupDocs Conversion Java 如何在將 DOCX 檔案轉換為 PDF 時 嵌入字體至 PDF。無論您是建立法律文件流程、出版電子書,或產生企業報告,以下步驟皆保證產生的 PDF 在每個裝置上都與原始 Word 檔案外觀完全相同。

快速解答

  • 什麼函式庫負責轉換? GroupDocs Conversion for Java.
  • 我可以替換缺失的字體嗎? Yes – use font substitution settings.
  • 我需要商業授權才能投入生產嗎? A commercial license is required; a free trial is available.
  • 支援哪個 Java 版本? JDK 8 or higher.
  • 是否支援批次轉換? Absolutely – wrap the converter in a loop or use the API’s batch features.

GroupDocs Conversion Java 是什麼?

GroupDocs Conversion Java 是一個高效能 API,能轉換超過 70+ 種文件格式,包括 DOCX、PPTX、XLSX 與 PDF,且不需要 Microsoft Office。它為開發者提供對渲染、版面配置以及 嵌入字體至 PDF 功能的細緻控制,能在一般伺服器上於 30 秒內處理 500 頁的 DOCX。

為何在轉換過程中使用自訂字體?

嵌入正確的字體可確保 PDF 在每個裝置上外觀相同,消除「字體備援」問題,並符合品牌指引。此方法可為需要在轉換後手動調整 PDF 的團隊減少高達 40 % 的重工。

前置條件

  • Java Development Kit (JDK) – 版本 8 或更新。
  • Maven 用於相依性管理。
  • 任一 IDE(IntelliJ IDEA、Eclipse 或 VS Code)。

設定 GroupDocs.Conversion for Java

To start, add the GroupDocs repository and the conversion dependency to your Maven project.

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/conversion/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-conversion</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

取得授權

您可以先使用 免費試用,或取得 臨時授權 以進行延長測試。若用於商業,請考慮購買完整授權。前往 GroupDocs Licensing 了解更多選項。

基本初始化與設定

加入相依性後,建立指向來源 DOCX 檔案的 Converter 實例。Converter 是管理文件轉換操作的主要類別。

import com.groupdocs.conversion.Converter;

// Initialize with a document path
Converter converter = new Converter("YOUR_DOCUMENT_DIRECTORY/SampleDocx.docx");

實作指南

以下是逐步說明,展示如何 設定 PDF 預設字體 以及定義自訂字體替代。

步驟 1:定義轉換路徑與載入選項

首先,指定 PDF 的儲存位置,並設定控制字體處理的載入選項。setAutoFontSubstitution 會在轉換期間停用自動字體猜測。setDefaultFont 指定原始字體缺失時的備援字體。setFontSubstitutes 將不可用的字體映射至您提供的替代字體。

import com.groupdocs.conversion.options.load.WordProcessingLoadOptions;
import com.groupdocs.conversion.contracts.FontSubstitute;

// Output PDF path
String convertedFile = "YOUR_OUTPUT_DIRECTORY/ConvertedWordToPdf.pdf";

// Configure load options for Word documents
double autoFontSubstitution(false);  // Disable automatic font substitution
defaultFont("resources/fonts/Helvetica.ttf");  // Set a default fallback font

// Prepare font substitutes list
List<FontSubstitute> fontSubstitutes = new ArrayList<>();
fontSubstitutes.add(FontSubstitute.create("Tahoma", "Arial")); // Substitute Tahoma with Arial
fontSubstitutes.add(FontSubstitute.create("Times New Roman", "Arial")); // Substitute Times New Roman with Arial

// Apply the substitutes to load options
setFontSubstitutes(fontSubstitutes);

直接答案

setAutoFontSubstitution(false) 設為關閉自動猜測,接著使用 setDefaultFont("Helvetica.ttf") 提供可靠的備援字體。最後,使用 setFontSubstitutes(...) 將任何缺失的字體映射至已知的替代字體。這可確保來源 DOCX 中的每個字元在輸出 PDF 中都有相對應的字形。

說明

  • setAutoFontSubstitution(false): 關閉函式庫的自動猜測,讓您完全掌控。
  • setDefaultFont("Helvetica.ttf"): 當找不到請求的字體時提供通用備援。
  • setFontSubstitutes(...): 將缺失的字體映射至您知道在目標系統上可用的替代字體。

步驟 2:設定 PDF 轉換選項

現在建立 PDF 專用的選項物件。PdfConvertOptions 定義 PDF 輸出參數,如字體嵌入與壓縮。setEmbedFonts 可啟用將選定字體嵌入產生的 PDF。

import com.groupdocs.conversion.options.convert.PdfConvertOptions;

// Initialize PDF conversion options
double options = new PdfConvertOptions();

直接答案

建立 PdfConvertOptions 實例,必要時使用 setEmbedFonts(true) 啟用字體嵌入,並調整壓縮設定以平衡檔案大小與品質。這些選項讓您微調最終 PDF,以同時符合視覺保真度與儲存限制。您之後亦可擴充 PdfConvertOptions 以調整頁面尺寸、邊距或壓縮設定。

步驟 3:執行轉換

最後,使用先前定義的載入與轉換選項執行轉換。convert(source, target, loadOptions, pdfOptions) 會依據給定設定執行轉換。

// Convert Word document to PDF with specified font settings
converter.convert(convertedFile, () -> loadOptions, options);

直接答案

呼叫 converter.convert(sourcePath, targetPath, loadOptions, pdfOptions)。API 會讀取 DOCX,套用您的字體規則,嵌入選定字體,並寫入一個精確保留原始排版的 PDF。API 讀取 DOCX,套用您的字體規則,並寫入嵌入所選字體的 PDF。

實務應用

  1. Legal Document Management – 為法庭用 PDF 保留精確排版。
  2. Publishing Industry – 在電子書與目錄中保持品牌字體一致。
  3. Corporate Reports – 確保面向利害關係人的 PDF 符合企業風格指南。
  4. Educational Material – 轉換講義時保留自訂學術字體。

效能考量

  • Memory Management – 大型 DOCX 檔案可能佔用大量堆積記憶體;請監控 JVM 記憶體並考慮調整 -Xmx
  • Batch Processing – 將轉換邏輯包在迴圈中或使用 GroupDocs 的批次 API,以有效處理多個檔案。
  • Resource Allocation – 在平行轉換大量文件時分配足夠的 CPU 核心。
  • Throughput – 在 4 核心 VM 上,該函式庫在嵌入字體的情況下每分鐘可處理 最多 12 份 300 頁文件。

常見問題與解決方案

問題解決方案
Fonts not substituted確認字體檔案存在於您提供的路徑,且 FontSubstitute 名稱與來源 DOCX 中的字體族名稱完全相符。
Out‑of‑memory errors增加 JVM 堆積大小(-Xmx2g 或更高),或將檔案分成較小批次處理。
PDF missing embedded fonts確保 setDefaultFont 指向 TrueType(.ttf)或 OpenType(.otf)檔案,且授權允許字體嵌入。
Incorrect page layout after conversion使用 PdfConvertOptions.setPageSize(...) 以匹配原始 Word 的頁面尺寸。
Slow conversion for very large files啟用 PdfConvertOptions.setStream(true) 並使用串流模式,以降低記憶體壓力。

常見問答

Q: 我可以在未購買授權的情況下使用 GroupDocs.Conversion 嗎?
A: 可以,您可以先使用免費試用或取得臨時授權進行評估。

Q: 若字體未正確替代,我該怎麼辦?
A: 確認字體檔案可存取且在 setFontSubstitutes 中正確引用。再次檢查字體族的精確名稱。

Q: 如何提升大型文件的轉換效能?
A: 將文件分批處理,監控系統資源,增加 JVM 堆積大小,並啟用串流模式。

Q: 除了 Word,是否能轉換其他文件類型?
A: 當然可以。GroupDocs Conversion 支援影像、試算表、簡報以及許多其他格式。

Q: 我在哪裡可以找到 GroupDocs.Conversion 的其他文件?
A: 前往官方指南 GroupDocs Java Conversion Docs 取得詳細 API 參考。

結論

您現在已擁有一套完整、可投入生產的解決方案,可在使用 GroupDocs Conversion Java 將 DOCX 轉換為 PDF 時 嵌入字體至 PDF。透過設定字體替代與預設字體,您可保證每個 PDF 都與原始 Word 文件的外觀相同,無論檢視器或平台為何。

後續步驟

  • 嘗試使用額外的 PdfConvertOptions,如 PDF/A 相容性或影像壓縮。
  • 探索批次轉換,以自動化大規模文件流程。
  • 在官方文件中檢視完整 API,以解鎖如浮水印或數位簽章等進階功能。

最後更新: 2026-07-14
測試版本: GroupDocs.Conversion 25.2
作者: GroupDocs

資源

相關教學