从 PDF 中提取特定页面

您可能需要从 PDF 文档中提取特定页面,或者可能需要将大型 PDF 文档拆分为较小的部分。作为 Python 开发人员,您可以通过页码或一系列页面以编程方式轻松地从 PDF 文档中提取特定页面。在本文中,您将学习如何使用 Python 中的 REST API 从 PDF 文档中提取特定页面。

本文应涵盖以下主题:

文档拆分器 REST API 和 Python SDK

为了从 PDF 文档中提取页面,我将使用 GroupDocs.Merger Cloud 的 Python SDK API。它是一个功能丰富的高性能 Cloud SDK,用于将多个文档合并为一个文档。它还使您能够将单个文档拆分为多个文档。 SDK 提供了删除、交换、旋转或更改整个页面或首选页面范围的页面方向的功能,以及对任何支持的文件格式(如 PDF、Word、Powerpoint 和 Excel 工作表)轻松执行其他操作的功能。目前,它还为 Cloud API 提供 .NET、Java、PHP、Ruby、Android 和 Node.js SDK 作为其 文档合并家族成员

您可以在控制台中使用以下命令将 GroupDocs.Merger-Cloud 安装到您的 Python 项目:

pip install groupdocs_merger_cloud

在开始执行步骤和可用代码示例之前,请从 仪表板 获取您的客户端 ID 和客户端密码。获得 ID 和密码后,添加如下所示的代码:

client_id = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5"
client_secret = "479db2b01dcb93a3d4d20efb16dea971"

configuration = groupdocs_merger_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

在 Python 中使用 REST API 从 PDF 中提取特定页面

您可以按照以下简单步骤从 PDF 文档中提取特定页面:

  1. 上传PDF文件至云端
  2. 按页码提取特定页面 从上传的 PDF 文件
  3. 下载 提取的文件

上传文件

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

# 创建 API 实例
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# 上传示例文件
request = groupdocs_merger_cloud.UploadFileRequest("ten-pages.pdf", "C:\\Files\\ten-pages.pdf", my_storage)
response = file_api.upload_file(request)

因此,PDF 文件将上传到 Cloud Storage,并可在仪表板的 文件部分 中找到。

使用 Python 按页码提取特定页面

请按照下面提到的步骤以编程方式从 PDF 文档中提取特定页面或多页。

  • 创建一个 Document API 实例
  • 提供拆分选项
  • 设置输入文件路径
  • 设置输出目录路径
  • 提供以逗号分隔的页码以提取
  • 将模式设置为页面
  • 创建拆分请求
  • 调用DocumentApi.split()方法获取结果

以下代码示例展示了如何使用 REST API 从 PDF 文档中提供特定页码来提取页面。

# 接口初始化
documentApi = groupdocs_merger_cloud.DocumentApi.from_config(configuration)

# 定义拆分选项
options = groupdocs_merger_cloud.SplitOptions()
options.file_info = groupdocs_merger_cloud.FileInfo("ten-pages.pdf")
options.output_path = "Output"
options.pages = [1, 3]
options.mode = "Pages"

# 创建拆分请求
split_request = groupdocs_merger_cloud.SplitRequest(options)
result = documentApi.split(split_request)        

print("Documents count = " + str(len(result.documents)))
使用 Python 从 PDF 中提取特定页面

使用 Python 从 PDF 中提取特定页面

下载提取的页面文件

上面的代码示例会将提取的页面保存在云中单独的 PDF 文件中。您可以使用以下代码示例下载它们:

# 接口初始化
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# 下载文件请求
request = groupdocs_merger_cloud.DownloadFileRequest("Output\\ten-pages_1.pdf", my_storage)
response = file_api.download_file(request)

# 将下载的文件移动到您的工作目录
shutil.move(response, "C:\\Files\\")

使用 Python 按页面范围提取页面

请按照下面提到的步骤通过以编程方式提供页面范围来从 PDF 文档中提取页面。

  • 创建一个 Document API 实例
  • 提供拆分选项
  • 设置输入文件路径
  • 设置输出目录路径
  • 通过设置要提取的起始页码和结束页码来提供页面范围
  • 将模式设置为页面
  • 创建拆分请求
  • 调用DocumentApi.split()方法获取结果
  • 创建下载文件请求
  • 调用FileApi.download\file()方法下载文件

以下代码示例展示了如何使用 REST API 提供 PDF 文档的页面范围来提取页面。请按照前面提到的步骤上传文件。

# 接口初始化
documentApi = groupdocs_merger_cloud.DocumentApi.from_config(configuration)
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# 定义拆分选项
options = groupdocs_merger_cloud.SplitOptions()
options.file_info = groupdocs_merger_cloud.FileInfo("ten-pages.pdf")
options.output_path = "Output"
options.start_page_number = 4
options.end_page_number = 7
options.mode = "Pages"

# 创建拆分请求
split_request = groupdocs_merger_cloud.SplitRequest(options)
result = documentApi.split(split_request)   

print("Documents count = " + str(len(result.documents)))

# 显示结果并逐个下载文件
for data in result.documents:
    print("Document Url = " + str(data))
    
    # 创建下载文件请求
    request = groupdocs_merger_cloud.DownloadFileRequest(data.path, my_storage)
    response = file_api.download_file(request)
    
    # 将下载的文件移动到您的工作目录
    shutil.move(response, "C:\\Files\\")
使用 Python 按页面范围提取页面

使用 Python 按页面范围提取页面

在线试用

请试用以下使用上述 API 开发的免费在线 PDF 拆分器工具。 https://products.groupdocs.app/splitter/pdf

结论

在本文中,您学习了如何使用 Python 从云端的 PDF 文档中提取特定页面。您还学习了如何以编程方式将 PDF 文件上传到云端,然后从云端下载提取的文件。您可以使用 文档 了解有关 GroupDocs.Merger Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看