使用 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。
實務應用
- Legal Document Management – 為法庭用 PDF 保留精確排版。
- Publishing Industry – 在電子書與目錄中保持品牌字體一致。
- Corporate Reports – 確保面向利害關係人的 PDF 符合企業風格指南。
- 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
資源
- 文件說明: GroupDocs Java Conversion Docs
- API 參考: GroupDocs API Reference
- 下載: Get GroupDocs.Conversion
- 購買: Buy a License
- 免費試用: Trial Downloads
- 臨時授權: Request Temporary License
- 支援: GroupDocs Support Forum