每个工作表一页 – Java 中的 Excel 转 PDF,字体替换

在将 Excel 电子表格转换为 PDF 时保持一致的排版可能具有挑战性,尤其是当您需要 每个工作表一页 时。本教程展示了如何在 Java 中 将 Excel 转换为 PDF,同时强制每个工作表一页并使用 GroupDocs.Conversion 替换缺失的字体。完成后,您将拥有一个可靠的解决方案,能够在各平台保持排版一致并简化文档工作流。

快速答案

  • “每个工作表一页”是什么意思? 每个工作表在单个 PDF 页面上渲染。
  • 哪个库负责转换? GroupDocs.Conversion for Java。
  • 我可以自动替换缺失的字体吗? 可以,使用 FontSubstitute 功能。
  • 我需要许可证吗? 需要临时许可证才能获得完整功能。
  • 这种方法适用于大型工作簿吗? 适用,只需适当调优 JVM 内存。

前置条件

在实现代码之前,请确保具备以下条件:

必需的库和依赖

确保您拥有 GroupDocs.Conversion 库的 25.2 或更高版本,可通过 Maven 管理。

环境设置要求

  • 已在机器上安装 Java Development Kit (JDK)。
  • 使用 IntelliJ IDEA 或 Eclipse 等 IDE 编写并运行 Java 代码。

知识前置条件

对 Java 编程、通过 Maven 管理库以及文件转换概念的基本了解会有帮助,但并非严格必需。

现在准备就绪,让我们深入实现细节。

为什么在 Excel 转 PDF 时使用 GroupDocs.Conversion Java?

  • 每个工作表一页 渲染确保分页可预测。
  • 字体替换 确保 PDF 在任何系统上外观相同,即使原始字体缺失。
  • 支持 convert excel to pdf,涵盖广泛的 Excel 功能(图表、公式、样式)。
  • 完全可通过 Java 编程,实现 excel to pdf java 自动化流水线。

为 Java 设置 GroupDocs.Conversion

Maven 配置

首先,将必要的仓库和依赖信息添加到 pom.xml 文件中:

<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 获取临时许可证,以在评估期间完整使用功能。

基本初始化和设置

配置好 Maven 后,在 Java 应用中初始化 GroupDocs.Conversion:

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

public class ConvertExcelToPDF {
    public static void main(String[] args) {
        String inputDocument = "sample.xlsx";
        String convertedFile = "output.pdf";

        // Initialize the Converter object with your document path
        Converter converter = new Converter(inputDocument);

        PdfConvertOptions options = new PdfConvertOptions();
        
        // Perform the conversion
        converter.convert(convertedFile, options);
    }
}

实现指南 – 字体替换与每个工作表一页

本节介绍在转换 Excel 文件为 PDF 时进行字体替换。这样可以在原始字体不可用时保持视觉一致性。

步骤 1:定义输入和输出路径

确定输入的 Excel 文件路径和期望的输出 PDF 路径:

String inputDocument = "YOUR_DOCUMENT_DIRECTORY/sample.xlsx";
String convertedFile = "YOUR_OUTPUT_DIRECTORY/ConvertSpreadsheetBySpecifyingFontsubstitution.pdf";

步骤 2:使用字体替换设置加载选项

创建 SpreadsheetLoadOptions 对象以配置转换设置,指定字体替换:

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

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

SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
loadOptions.setFontSubstitutes(fontSubstitutes);

步骤 3:配置默认字体和 每个工作表一页

设置默认字体作为后备,并启用 每个工作表一页 选项,以确保每个工作表占用单个 PDF 页面:

loadOptions.setDefaultFont("resources/fonts/Helvetica.ttf");
loadOptions.setOnePagePerSheet(true);

专业提示: 在需要报告或发票的可预测分页时,启用 setOnePagePerSheet(true) 是必不可少的。

步骤 4:使用加载选项初始化 Converter

将加载选项传递给 Converter 对象:

Converter converter = new Converter(inputDocument, () -> loadOptions);

步骤 5:定义 PDF 转换选项并执行转换

指定转换格式并执行过程:

PdfConvertOptions options = new PdfConvertOptions();
converter.convert(convertedFile, options);

故障排除技巧

  • 缺失字体: 确保替代字体已安装在系统上或随应用程序打包。
  • 路径错误: 核实输入和输出文档的文件路径;相对路径应以项目根目录为基准解析。

实际应用

字体替换和每个工作表一页的转换在许多实际场景中都很有价值:

  1. 业务报告: 跨平台保持财务报告的统一呈现。
  2. 法律文档: 在共享的 PDF 合同中保持外观一致。
  3. 学术出版: 为论文和演示稿统一字体。
  4. 营销材料: 从电子表格生成的宣传册或简报保持统一。
  5. 协作工具: 简化依赖 PDF 预览的文档管理系统。

性能考虑

在转换大型工作簿时优化性能:

  • 使用流式 I/O 减少内存占用。
  • 根据文档大小调优 JVM 堆大小(-Xmx)。
  • 在可能的情况下复用单个 Converter 实例进行批量转换。

常见问题

Q: GroupDocs.Conversion Java 用于什么?
A: 它是一个用于转换各种文档格式(包括 Excel 转 PDF)的库,提供可自定义的设置,如字体替换和每个工作表一页。

Q: 我可以在不购买许可证的情况下使用 GroupDocs.Conversion 吗?
A: 可以,免费试用或临时许可证让您在决定购买前探索所有功能。

Q: 转换过程中如何处理缺失的字体?
A: 在 SpreadsheetLoadOptions 中使用 FontSubstitute 对象定义替代字体;库会自动替换不可用的字体。

Q: 使用 GroupDocs.Conversion 优化 Java 性能的最佳实践是什么?
A: 高效的内存管理、正确的 JVM 配置以及流式处理文件有助于保持高性能。

Q: “每个工作表一页”选项会影响图表渲染吗?
A: 不会,图表会按比例缩放以适应单页,同时保持视觉保真度。

结论

您现在拥有一套完整的、可投入生产的方案,使用 GroupDocs.Conversion 在 Java 中 将 Excel 转换为 PDF,实现 每个工作表一页 并自动 字体替换。此方法保证排版一致、分页可预测,并能顺畅集成到自动化文档流水线中。

下一步

  • 试验其他 PdfConvertOptions(例如 PDF/A 合规性)。
  • 将此方案与 GroupDocs.Annotation 结合,实现转换后编辑。
  • 使用相同模式探索其他源格式(Word、PowerPoint)。

Last Updated: 2026-01-15
Tested With: GroupDocs.Conversion 25.2
Author: GroupDocs