在 Python 中使用 REST API 将 Word 文档转换为 PDF。

Word 文档以 PDF 格式共享是一种常见的做法,因为 PDF 是业界广泛使用的文档共享格式。您可以使用 Microsoft Office 提供的内置功能轻松地将 Word 转换为 PDF,但您可能需要以编程方式将 Word 文档(DOC 或 DOCX)转换为 PDF。在本文中,您将学习如何在 Python 中使用 REST API 将 Word 文档转换为 PDF。

本文应涵盖以下主题:

Word 到 PDF 转换 REST API 和 Python SDK

为了将 DOCX 转换为 PDF,我们将使用 GroupDocs.Conversion Cloud 的 Python SDK API。它是一个独立于平台的文档/图像转换解决方案,不依赖于任何工具或软件。它使您能够快速可靠地将任何支持的文件格式 的图像和文档转换为您需要的任何格式。

您可以在控制台中使用以下命令将 GroupDocs.Conversion Cloud 安装到您的 Python 应用程序:

pip install groupdocs_conversion_cloud

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

client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

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

在 Python 中使用 REST API 将 Word 文档转换为 PDF

您可以按照以下简单步骤在云端以编程方式将 Word 文档转换为 PDF:

  1. 上传DOCX文件到云端
  2. 使用 Python 将 DOCX 转换为 PDF
  3. 下载转换后的PDF文件

上传 DOCX 文件

首先,使用以下代码示例将 DOCX 文件上传到云端:

# 创建 API 实例
file_api = groupdocs_conversion_cloud.FileApi.from_config(configuration)

# 上传文件请求
request = groupdocs_conversion_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Conversion\\sample.docx", my_storage)

# 上传示例文件
response = file_api.upload_file(request)

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

使用 Python 将 DOCX 转换为 PDF

您可以按照下面提到的步骤以编程方式轻松地将 DOCX 转换为 PDF 文档:

  • 首先,创建一个 ConvertApi 的实例。
  • 现在,创建 ConvertSettings 的实例。
  • 然后,提供输入 DOCX 文件路径。
  • 将格式设置为“pdf”。
  • 提供输出文件路径。
  • 现在,使用 ConvertSettings 创建 ConvertDocumentRequest。
  • 最后,通过使用 ConvertDocumentRequest 调用 convert\document() 方法来转换 DOCX。

以下代码示例展示了如何在 Python 中使用 REST API 将 DOCX 转换为 PDF。

# 创建 API 实例
convert_api = groupdocs_conversion_cloud.ConvertApi.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.ConvertSettings()
settings.file_path = "sample.docx"
settings.format = "pdf"
settings.output_path = "converted"

# 创建转换文档请求
request = groupdocs_conversion_cloud.ConvertDocumentRequest(settings)

# 转换文档
result = convert_api.convert_document(request)

# 完毕
print("Document converted: " + result[0].path)
在 Python 中使用 REST API 将 Word 文档转换为 PDF

使用 Python 中的 REST API 将 Word 文档转换为 PDF。

下载转换后的文件

上面的代码示例会将转换后的 PDF 文件保存在云端。您可以使用以下代码示例下载它:

# API初始化
file_api = groupdocs_conversion_cloud.FileApi.from_config(configuration)

# 创建下载文件请求
request = groupdocs_conversion_cloud.DownloadFileRequest("converted\\sample.pdf", my_storage)

# 下载文件
response = file_api.download_file(request)

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

使用高级选项将 Word 转换为 PDF

您可以按照以下步骤使用一些高级设置将 Word 文档转换为 PDF 文件:

  • 首先,创建一个 ConvertApi 的实例。
  • 现在,创建 ConvertSettings 的实例。
  • 然后,提供 DOCX 文件路径。
  • 将“pdf”设置为格式。
  • 提供输出文件路径。
  • 现在,创建 DocxLoadOptions 的实例
  • 可选择设置各种加载选项,例如隐藏\评论、隐藏\单词\跟踪\更改等。
  • 现在,创建 PdfConvertOptions 的实例
  • 然后,设置各种转换选项,如显示\文档\标题、边距(顶部、左侧、右侧、底部)等。
  • 现在,使用 ConvertSettings 创建 ConvertDocumentRequest
  • 最后,通过使用 ConvertDocumentRequest 调用 convert\document() 方法来转换 DOCX

以下代码示例显示如何使用高级转换选项将 Word 文档转换为 PDF 文档。请按照前面提到的步骤上传和下载文件。

# 创建 API 实例
convert_api = groupdocs_conversion_cloud.ConvertApi.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.ConvertSettings()
settings.file_path = "sample.docx"
settings.format = "pdf"
settings.output_path = "converted"

# DOCX 加载选项
loadOptions = groupdocs_conversion_cloud.DocxLoadOptions()
loadOptions.hide_comments = True              # Hide comments
loadOptions.hide_word_tracked_changes = True  # Hide tracked changes

# PDF 转换选项
convertOptions = groupdocs_conversion_cloud.PdfConvertOptions()
convertOptions.center_window = True
convertOptions.compress_images = False
convertOptions.display_doc_title = True
convertOptions.dpi = 1024.0
convertOptions.fit_window = False
convertOptions.from_page = 1
convertOptions.grayscale = False
convertOptions.image_quality = 100
convertOptions.linearize = False
convertOptions.margin_top = 5
convertOptions.margin_left = 5
convertOptions.unembed_fonts = True
convertOptions.remove_unused_streams = True
convertOptions.remove_unused_objects = True
convertOptions.remove_pdfa_compliance = False

settings.convert_options = convertOptions

# 转换文档请求
request = groupdocs_conversion_cloud.ConvertDocumentRequest(settings)

# 转换文档
result = convert_api.convert_document(request)

# 完毕
print("Document converted: " + result[0].path)

在 Python 中将页面范围从 DOCX 转换为 PDF

您可以按照以下步骤以编程方式将一系列页面从 Word 文档转换为 PDF 文件:

  • 首先,创建一个 ConvertApi 的实例
  • 现在,创建 ConvertSettings 的实例
  • 然后,提供输入的 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 现在,创建 PdfConvertOptions 的实例
  • 然后,提供要转换的页码范围,从起始页码和要转换的总页数
  • 现在,将 PdfConvertOptions 分配给 ConvertSettings
  • 然后,使用 ConvertSettings 创建 ConvertDocumentRequest
  • 最后,通过使用 ConvertDocumentRequest 调用 convert\document() 方法进行转换

以下代码示例展示了如何使用 Python 中的 REST API 将一系列页面从 DOCX 转换为 PDF。请按照前面提到的步骤上传和下载文件。

# 创建 API 实例
convert_api = groupdocs_conversion_cloud.ConvertApi.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.ConvertSettings()
settings.file_path = "sample.docx"
settings.format = "pdf"
settings.output_path = "converted"

# PDF 转换选项
convertOptions = groupdocs_conversion_cloud.PdfConvertOptions()
convertOptions.from_page = 1;    # start page number
convertOptions.pages_count = 2;  # total pages to convert

settings.convert_options = convertOptions

# 转换文档请求
request = groupdocs_conversion_cloud.ConvertDocumentRequest(settings)

# 转换文档
result = convert_api.convert_document(request)

# 完毕
print("Document converted: " + result[0].path)

在 Python 中将 DOCX 的特定页面转换为 PDF

您可以按照以下步骤以编程方式将 Word 文档的特定页面转换为 PDF 文件:

  • 首先,创建一个 ConvertApi 的实例
  • 现在,创建 ConvertSettings 的实例
  • 然后,提供输入的 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 现在,创建 PdfConvertOptions 的实例
  • 然后,在以逗号分隔的数组中提供特定页码以进行转换
  • 现在,将 PdfConvertOptions 分配给 ConvertSettings
  • 然后,使用 ConvertSettings 创建 ConvertDocumentRequest
  • 最后,通过使用 ConvertDocumentRequest 调用 convert\cocument() 方法进行转换

以下代码示例展示了如何在 Python 中使用 REST API 将 Word 文档的特定页面转换为 PDF。请按照前面提到的步骤上传和下载文件。

# 创建 API 实例
convert_api = groupdocs_conversion_cloud.ConvertApi.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.ConvertSettings()
settings.file_path = "sample.docx"
settings.format = "pdf"
settings.output_path = "converted"

# PDF 转换选项
convertOptions = groupdocs_conversion_cloud.PdfConvertOptions()
convertOptions.pages = [1,2];  # page numbers to convert

settings.convert_options = convertOptions

# 转换文档请求
request = groupdocs_conversion_cloud.ConvertDocumentRequest(settings)

# 转换文档
result = convert_api.convert_document(request)

# 完毕
print("Document converted: " + result[0].path)

使用 Python 将带有水印的 Word 转换为 PDF

您可以按照以下步骤以编程方式将 Word 文档转换为 PDF 文档并向转换后的文档添加水印:

  • 首先,创建一个 ConvertApi 的实例
  • 现在,创建 ConvertSettings 的实例
  • 然后,提供输入的 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 现在,创建 WatermarkOptions 的实例
  • 然后,设置水印文本、颜色、宽度、高度、左侧、顶部等。
  • 现在,定义 PdfConvertOptions 并分配 WatermarkOptions
  • 现在,使用 ConvertSettings 创建 ConvertDocumentRequest
  • 最后,通过使用 ConvertDocumentRequest 调用 convert\document() 方法来转换 DOCX

下面的代码示例展示了如何在 Python 中使用 REST API 将 Word 文档转换为 PDF 文档并向转换后的 PDF 文档添加水印。请按照前面提到的步骤上传和下载文件。

# API初始化
convert_api = groupdocs_conversion_cloud.ConvertApi.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.ConvertSettings()
settings.file_path = "sample.docx"
settings.format = "pdf"
settings.output_path = "converted"

# 定义水印选项
watermark = groupdocs_conversion_cloud.WatermarkOptions()
watermark.text = "THIS IS SAMPLE WATERMARK"
watermark.bold = True;
watermark.font_size = 34;
watermark.color = "Gray";
watermark.background = False;
watermark.rotation_angle = 30;
watermark.left = 90;
watermark.top = 500;

# 定义 PDF 转换选项
convertOptions = groupdocs_conversion_cloud.PdfConvertOptions()
convertOptions.watermark_options = watermark

settings.convert_options = convertOptions

# 创建转换文档请求
request = groupdocs_conversion_cloud.ConvertDocumentRequest(settings)

# 转换文档
result = convert_api.convert_document(request)
print("Document converted successfully: " + result[0].url)
使用 Python 将带有水印的 Word 转换为 PDF。

使用 Python 将带有水印的 Word 转换为 PDF。

不使用云存储的 DOCX 到 PDF 转换

您可以在不使用云存储的情况下将 Word 文档转换为 PDF,方法是将其传递到请求正文中并在 API 响应中接收输出文件。请按照以下步骤在不使用云存储的情况下将 DOCX 转换为 PDF。

  • 首先,创建一个 ConvertApi 的实例
  • 从本地路径读取输入 DOCX 文件
  • 现在,创建 ConvertDocumentDirectRequest
  • 然后,提供目标格式为“pdf”和输入文件路径作为输入参数
  • 使用 ConvertDocumentDirectRequest 调用 convert\document\direct() 方法获取结果
  • 最后,使用 FileStream.writeFile() 方法将输出文件保存到本地路径

以下代码示例展示了如何在不使用云存储的情况下将 Word 文档转换为 PDF。

# 创建 API 实例
convert_api = groupdocs_conversion_cloud.转变Api.from_keys(client_id, client_secret)

# 创建转换请求
request = groupdocs_conversion_cloud.转变DocumentDirectRequest("pdf", "C:\\Files\\Conversion\\sample.docx")

# 转变
result = convert_api.convert_document_direct(request)

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

将 DOCX 转换为 PDF 并直接下载

您可以通过编程方式将 DOCX 转换为 PDF 文档,并按照以下步骤直接下载转换后的文件:

  • 首先,创建一个 ConvertApi 实例
  • 现在,创建 ConvertSettings 的实例
  • 然后,设置DOCX文件路径
  • 将“pdf”分配给格式
  • 将“无”设置为输出路径
  • 现在,使用 ConvertSettings 创建 ConvertDocumentRequest
  • 然后调用convert\document\download()方法得到结果
  • 或者,使用 shutil.move() 方法将输出文件保存到本地路径

下面的代码示例显示了如何将 DOCX 文件转换为 PDF 文档并使用 Python 中的 REST API 直接下载它。 API 应返回转换后的 PDF 文件作为响应。请按照前面提到的步骤上传文件。

# 创建必要的 API 实例
convert_api = groupdocs_conversion_cloud.转变Api.from_keys(client_id, client_secret)

# 定义转换设置
settings = groupdocs_conversion_cloud.转变Settings()
settings.file_path = "sample.docx"
settings.format = "pdf"

settings.output_path = None    # leave OutputPath will result the output as document IOStream

# 创建转换请求
request = groupdocs_conversion_cloud.转变DocumentRequest(settings)

# 转变
response = convert_api.convert_document_download(request)

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

在线试用

请试用以下免费的在线 DOCX 到 PDF 转换工具,它是使用上述 API 开发的。 https://products.groupdocs.app/conversion/docx-to-pdf

结论

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

也可以看看