在 Java 中将 PDF 拆分为多个文件

PDF 是支持文本、图形和许多其他元素的最著名的文件格式之一。它受欢迎的原因之一是它的便携性。在某些情况下,您可能需要将大型 PDF 文件拆分为多个文件。为了以编程方式解决这个问题,本文讨论了如何在 Java 中拆分 PDF 文件的不同方法。

用于拆分 PDF 文件的 Java API

GroupDocs.Merger 提供了合并和拆分许多不同文件格式的文件的解决方案。我们将使用它的 Java API 以不同的方式分割 PDF 文件。从 下载部分 下载 JAR 文件,或者仅在您的 Java 应用程序中使用最新的存储库和依赖项 Maven 配置。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-merger</artifactId>
        <version>21.9</version> 
</dependency>

在 Java 中将 PDF 文件拆分为多页文件

以下步骤指导如何将 PDF 文件拆分为多页文件:

  • 使用 Merger 类加载 PDF 文件。
  • 定义输出文件格式。
  • 使用 SplitOptions 定义页面间隔。
  • 使用 split() 方法根据定义的间隔拆分加载的 PDF。

以下代码示例展示了如何在 Java 中将 PDF 文件拆分为多页文件。

/*
 * 在 Java 中将 PDF 文件拆分为多个页面文件
 */
// 加载 PDF 文件
Merger merger = new Merger("path/document.pdf"); 

// 定义输出文件格式
String filePathOut = "path/splitPDF_{0}.{1}";

// 定义拆分间隔和拆分模式
SplitOptions splitOptions = new SplitOptions(filePathOut,  new int[] { 3, 6, 8 }, SplitMode.Interval);

// 根据给定的间隔拆分 PDF
merger.split(splitOptions);

在 Java 中将 PDF 文件拆分为多个单页文件

以下步骤指导您如何拆分 PDF 以将页面提取为多个单页文件:

  • 使用 Merger 类加载 PDF 文件。
  • 定义输出文件格式。
  • 使用 SplitOptions 定义准确的页码。
  • 使用 split() 方法根据定义的页面拆分加载的 PDF。

以下代码示例展示了如何在 Java 中将 PDF 文件拆分为多个单页文件。

/*
 * 在 Java 中将 PDF 文件拆分为单页文件
 */
// 加载 PDF 文件
Merger merger = new Merger("path/document.pdf");

// 定义输出文件格式
String filePathOut = "path/splitPDF_{0}.{1}"; 

// 定义要提取为单页文档的页面
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 });

// 根据拆分选项拆分 PDF
merger.split(splitOptions);

在 Java 中按范围从 PDF 文件中提取页面

以下步骤指导如何通过根据给定范围拆分从 PDF 中提取页面:

  • 使用 Merger 类加载 PDF 文件。
  • 定义输出文件格式。
  • 使用 SplitOptions 提供页面范围。
  • 使用 split() 方法根据定义的范围分割加载的 PDF。

以下代码片段显示了如何通过在 Java 中提供范围来拆分 PDF 和提取页面。

/*
 * 在 Java 中按给定范围将 PDF 文件拆分为单页文件
 */
// 加载 PDF 文件
Merger merger = new Merger("path/document.pdf"); 

// 定义输出文件格式
String filePathOut = "path/splitPDF_{0}.{1}";

// 定义范围以提取为单页文档
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7);

// 根据拆分选项拆分 PDF
merger.split(splitOptions);

使用 Java 中的偶数/奇数过滤器从 PDF 文件中提取页面

以下步骤指导如何通过拆分从 PDF 文件中提取给定范围内的偶数/奇数页:

  • 使用 Merger 类加载 PDF 文件。
  • 定义输出文件格式。
  • 使用 SplitOptions 提供页面范围。
  • 使用 RangeMode 应用偶数、奇数或所有页面过滤器。
  • 使用 split() 方法根据定义的过滤器拆分加载的 PDF。

以下代码片段显示了如何使用 Java 提取 PDF 文件定义范围内的所有奇数/偶数页。

/*
 * 通过给定范围和过滤器(偶数/奇数页) 将 PDF 文件拆分为 Java 中的单页文件
 */
// 加载 PDF 文件
Merger merger = new Merger("path/document.pdf"); 

// 定义输出文件格式
String filePathOut = "path/splitPDF_{0}.{1}";

// 定义范围和过滤器以将给定范围内的所有奇数页提取为单页文档
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7, (Integer)RangeMode.OddPages);

// 根据拆分选项拆分 PDF
merger.split(splitOptions);

代码更改摘要

上述场景中唯一不同的是创建 SplitOptions 的方式。您可以根据代码中的要求使用以下配置。

  • 对于多页文件 - 使用间隔:[1,2]、[3,4,5]、[6,7]、[8,9,10]。
new SplitOptions(outputFile,  new int[] { 3, 6, 8 }, SplitMode.Interval)
  • 单个页面:[3]、[6]、[8]
new SplitOptions(outputFile, new int[] { 3, 6, 8 });
  • 提取范围内的页面:[3]、[4]、[5]
new SplitOptions(outputFile, 3, 5);
  • 带过滤器的范围:[3]、[5]、[7]
new SplitOptions(outputFile, 3, 7, (Integer)RangeMode.OddPages);

获取免费 API 许可证

您可以 获得免费的临时许可证 以便在没有评估限制的情况下使用 API。

结论

总而言之,您已经学习了在 Java 中拆分 PDF 文件的不同方法。首先,我们将 PDF 文件拆分为多页文档以及多个单页文档。然后我们一一提取给定范围内PDF文件的所有页面和偶数/奇数页。现在您应该有信心使用 GroupDocs.Merger API 构建自己的 PDF 拆分器 Java 应用程序。

要了解有关 API 的更多信息,请访问 文档。如有疑问,请通过 论坛 联系我们。

也可以看看