如何在 Java 中提取 PDF 页面

在 Java 中从 PDF 中提取页面 - 在线分离 PDF 页面。

如果您正在处理 PDF 文件,您可能会发现自己处于需要从 PDF 文件中提取页面的情况。从 PDF 文件中提取页面可能是一项耗时的任务,尤其是当您必须手动执行或处理大型文档时。幸运的是,借助 GroupDocs.Merger Cloud SDK for Java,您可以轻松地以编程方式从 PDF 文件中提取页面。在本文中,我们将探讨如何使用 Java 从 PDF 中提取页面。

本文应涵盖以下主题:

Java PDF 页面提取器 REST API 和 SDK 安装

GroupDocs.Merger Cloud SDK for Java 是一种基于云的 API,允许开发人员合并、提取、拆分、重新排序和删除文件和其他类型的文档 中的页面,包括 Word、Excel 、PowerPoint, HTML、PDF 等等。这个功能强大的 SDK 易于使用,可以集成到基于 Java 的应用程序中以自动执行文件操作任务。

您可以 下载 API 的 JAR 文件或使用 Maven 安装它,方法是将以下存储库和依赖项添加到项目的 pom.xml 文件中:

Maven 存储库:

<repository>
    <id>groupdocs-artifact-repository</id>
    <name>GroupDocs Artifact Repository</name>
    <url>https://repository.groupdocs.cloud/repo</url>
</repository>

Maven 依赖项:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-merger-cloud</artifactId>
    <version>23.2</version>
    <scope>compile</scope>
</dependency>

现在,您需要在 GroupDocs 网站上注册 免费试用帐户或购买订阅计划获取您的 API 密钥。获得客户端 ID 和客户端密码后,将以下代码片段添加到基于 Java 的应用程序中:

# 注册后从 https://dashboard.groupdocs.cloud 获取你的 client_id 和 client_secret。

String ClientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
String ClientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String MyStorage = "test-internal-storage";
Configuration configuration = new Configuration(ClientId, ClientSecret);

如何在 Java 中通过精确页码提取 PDF 页面

要使用 GroupDocs.Merger Cloud SDK for Java 从 PDF 文件中提取页面,您需要执行以下步骤:

上传文件

首先,使用下面给出的代码示例将 PDF 文件上传到云端:

package com.groupdocsdev.classes;

import java.io.File;
import com.groupdocs.cloud.merger.client.*;
import com.groupdocs.cloud.merger.model.*;
import com.groupdocs.cloud.merger.model.requests.*;
import com.groupdocs.cloud.merger.api.*;
import com.groupdocs.cloud.merger.client.ApiException;

// 使用Java上传文件到云存储
public class App {

	public static void main(String[] args) {

		FileApi apiInstance = new FileApi(configuration);
		try {
			File fileStream = new File("H:\\groupdocs-cloud-data\\input-sample-file.pdf");
			UploadFileRequest request = new UploadFileRequest("java-testing\\input-sample-file.pdf", fileStream, MyStorage);
			FilesUploadResult response = apiInstance.uploadFile(request);
			System.out.println("Expected response type is FilesUploadResult: " + response.getUploaded().size());
		} catch (ApiException e) {
			System.err.println("Exception while calling FileApi:");
			e.printStackTrace();
		}
	}
}

因此,上传的 PDF 文件将在云端仪表板的 文件部分 中可用。

从 Java 中的 PDF 文件中提取页面

以下是关于如何使用 GroupDocs.Merger Cloud SDK for Java 从 PDF 文件中提取页面的分步指南和示例代码片段:

  • 首先,将所需的类导入到您的 Java 文件中。
  • 其次,创建 PagesApi 类的一个实例。
  • 第三,创建 FileInfo 类的一个实例。
  • 之后,设置源输入文件路径。
  • 现在,创建 ExtractOptions() 类的一个实例。
  • 然后,以数组格式定义提取选项 setFileInfo、setOutputPath 和 setPages 集合。
  • 现在,创建 ExtractRequest() 类的实例并传递 ExtractOptions 参数。
  • 最后,通过调用 PagesApi 的 extract() 方法并传递 ExtractRequest 参数来提取页面。

以下代码片段显示了如何使用 REST API 将 PDF 文件分成单独的页面:

package com.groupdocsdev.classes;

import java.util.Arrays;
import com.groupdocs.cloud.merger.client.*;
import com.groupdocs.cloud.merger.model.*;
import com.groupdocs.cloud.merger.model.requests.*;
import com.groupdocs.cloud.merger.api.*;
import com.groupdocs.cloud.merger.client.ApiException;

// 如何在 Java 中通过精确页码提取 PDF 页面。
public class App {

	public static void main(String[] args) {

		// 创建页面 API 的实例。			
		PagesApi apiInstance = new PagesApi(configuration);

		try {

			// 准备设置
			FileInfo fileInfo = new FileInfo();			
			fileInfo.setFilePath("java-testing/input-sample-file.pdf");

			ExtractOptions options = new ExtractOptions();
			options.setFileInfo(fileInfo);
			options.setOutputPath("java-testing/output-sample-file.pdf");
			options.setPages(Arrays.asList(3, 5, 7));

			ExtractRequest request = new ExtractRequest(options);

			DocumentResult response = apiInstance.extract(request);
			
			// 获取输出文件路径
			System.out.println("Output file path: " + response.getPath());
			
		} catch (ApiException e) {
			System.err.println("Exception while calling FileApi:");
			e.printStackTrace();
		}
		
	}
}

下载文件

上面的代码示例将在云端保存 PDF 的特定页面。您可以使用以下代码示例下载它:

package com.groupdocsdev.classes;

import java.io.File;
import com.groupdocs.cloud.merger.client.*;
import com.groupdocs.cloud.merger.model.requests.*;
import com.groupdocs.cloud.merger.api.*;
import com.groupdocs.cloud.merger.client.ApiException;

// 使用 Java 从云存储下载文件
public class App {

	public static void main(String[] args) {

		FileApi apiInstance = new FileApi(configuration);
		try {

			DownloadFileRequest request = new DownloadFileRequest("java-testing\\multipage-documents\\output-sample-file.pdf", MyStorage, null);
			File response = apiInstance.downloadFile(request);
			System.out.println("Expected response type is downloadFile: " + response.length());
		} catch (ApiException e) {
			System.err.println("Exception while calling FileApi:");
			e.printStackTrace();
		}
	}
}

如何使用 Java 按页面范围从 PDF 中提取页面

在本节中,我们将介绍分步指南和示例代码片段,以通过应用页面范围使用 Java 从 PDF 中保存选定页面:

  • 首先,将所需的类导入到您的 Java 文件中。
  • 其次,创建 PagesApi 类的实例。
  • 第三,创建 FileInfo 类的一个实例。
  • 之后,设置源输入文件路径。
  • 现在,创建 ExtractOptions() 类的一个实例。
  • 然后,定义提取选项 setFileInfo、setOutputPath、setStartPageNumber 和 setEndPageNumber。
  • 接下来,将页面选项 setRangeMode 设置为 EVENPAGES。
  • 现在,创建 ExtractRequest() 类的实例并传递 ExtractOptions 参数。
  • 最后,通过调用 PagesApi 的 extract() 方法并传递 ExtractRequest 参数来提取页面。

以下代码片段展示了如何在 Java 中通过应用页面范围和模式来提取 PDF 页面:

package com.groupdocsdev.classes;

import java.util.Arrays;
import com.groupdocs.cloud.merger.client.*;
import com.groupdocs.cloud.merger.model.*;
import com.groupdocs.cloud.merger.model.requests.*;
import com.groupdocs.cloud.merger.api.*;
import com.groupdocs.cloud.merger.client.ApiException;

// 如何使用 Java 按页面范围从 PDF 中提取页面。
public class App {

	public static void main(String[] args) {
		
		// 创建页面 API 的实例。		
		PagesApi apiInstance = new PagesApi(configuration);

		try {

			// 准备设置
			FileInfo fileInfo = new FileInfo();			
			fileInfo.setFilePath("java-testing/input-sample-file.pdf");

			ExtractOptions options = new ExtractOptions();
			options.setFileInfo(fileInfo);
			options.setOutputPath("java-testing/output-sample-file.pdf");
			options.setStartPageNumber(1);
			options.setEndPageNumber(10);
			options.setRangeMode(PageOptions.RangeModeEnum.EVENPAGES);

			ExtractRequest request = new ExtractRequest(options);

			DocumentResult response = apiInstance.extract(request);
			
			// 获取输出文件路径
			System.out.println("Output file path: " + response.getPath());
			
		} catch (ApiException e) {
			System.err.println("Exception while calling FileApi:");
			e.printStackTrace();
		}
		
	}
}

免费在线 PDF 页面提取器

如何免费提取PDF页面?请尝试使用免费 PDF 页面提取器 从 PDF 中免费提取特定页面。此在线 PDF 页面提取器是使用上述 Groupdocs.Merger Cloud API 开发的。

结论

GroupDocs.Merger Cloud SDK for Java 提供了一种将 PDF 页面提取为 Java 新 PDF 的简单方法。以下是您在本文中学到的内容:

  • 如何使用 Java 将 PDF 文件按编号分成多个页面;
  • 在云端使用 Java 以编程方式上传和下载 PDF 文件;
  • 使用页面范围将 PDF 分成单独的页面;
  • 并使用免费的在线 PDF 页面提取器免费在线提取 PDF 页面。

此外,我们还提供了一个 API 参考部分,可让您直接通过浏览器可视化我们的 API 并与之通信。 Java SDK 的完整源代码可在 Github 上免费获得。请查看 GroupDocs.Merger Cloud SDK for Java 此处示例

此外,我们建议您按照我们的 入门指南 了解详细步骤和 API 用法。

最后,我们不断撰写有关使用 REST API 的不同文档操作的新博文。因此,请与我们联系以获取定期更新。

问一个问题

如果您对 PDF 页面提取器 API 有任何疑问,请随时在 免费支持论坛 上向我们提问。

常见问题

如何从 Java 中的 PDF 文件中提取页面?

您可以使用 GroupDocs.Merger Cloud SDK for Java 从 PDF 文件中提取页面。

是否可以在 Java 中从 PDF 导出单个页面?

是的,您可以使用 GroupDocs.Merger Cloud SDK for Java 在 Java 中以编程方式将 PDF 页面提取到单个文件中。

我可以使用 GroupDocs.Merger Cloud SDK for Java 提取哪些文件格式的页面?

除了 PDF 文件之外,GroupDocs.Merger Cloud SDK for Java 还可以从 Microsoft Word、Excel、PowerPoint, HTML 和其他文件格式 中提取页面。

也可以看看

以下是一些您可能会觉得有用的相关文章: