使用 GroupDocs Conversion Java for Word 嵌入字体 PDF

在本综合教程中,您将了解 GroupDocs Conversion Java 如何在将 DOCX 文件转换为 PDF 时 嵌入字体 PDF。无论您是构建法律文档流水线、出版电子书,还是生成企业报告,下面的步骤都能确保生成的 PDF 在每个设备上看起来与原始 Word 文件完全一致。

快速答案

  • 哪个库负责转换? GroupDocs Conversion for Java.
  • 我可以替换缺失的字体吗? 是的 – 使用 font substitution settings.
  • 我需要生产环境的许可证吗? 需要商业许可证;提供免费试用。
  • 支持哪个 Java 版本? JDK 8 或更高。
  • 批量转换可能吗? 当然 – 将转换器放在循环中或使用 API 的批处理功能。

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

首先,将 GroupDocs 仓库和转换依赖添加到您的 Maven 项目中。

<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>

获取许可证

您可以先使用 free trial 或获取 temporary license 进行扩展测试。商业使用时,请考虑购买完整许可证。访问 GroupDocs Licensing 了解您的选项。

基本初始化和设置

添加依赖后,创建指向源 DOCX 文件的 Converter 实例。Converter 是管理文档转换操作的主要类。

import com.groupdocs.conversion.Converter;

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

实现指南

以下是逐步演练,展示如何 set default font 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 页文档。

常见问题及解决方案

问题解决方案
字体未替代确认字体文件存在于您提供的路径,并且 FontSubstitute 名称与源 DOCX 中的字体族名称完全匹配。
内存不足错误增加 JVM 堆大小(-Xmx2g 或更高)或将文件分批处理以减小批次。
PDF 缺少嵌入字体确保 setDefaultFont 指向 TrueType(.ttf)或 OpenType(.otf)文件,并且许可证允许嵌入字体。
转换后页面布局不正确使用 PdfConvertOptions.setPageSize(...) 以匹配原始 Word 页面尺寸。
大型文件转换缓慢通过 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

资源

相关教程