Word 文档以 PDF 格式共享是一种常见的做法,因为 PDF 是业界广泛使用的文档共享格式。您可以使用 Microsoft Office 提供的内置功能轻松地将 Word 转换为 PDF,但您可能需要以编程方式将 Word 文档(DOC 或 DOCX)转换为 PDF。在本文中,您将学习如何在 Python 中使用 REST API 将 Word 文档转换为 PDF。
本文应涵盖以下主题:
- Word 到 PDF 转换 REST API 和 Python SDK
- 在 Python 中使用 REST API 将 Word 文档转换为 PDF
- 使用高级选项将 Word 转换为 PDF
- 在 Python 中将页面范围从 DOCX 转换为 PDF
- 在 Python 中将 DOCX 的特定页面转换为 PDF
- 使用 Python 将带有水印的 Word 转换为 PDF
- 不使用云存储的 DOCX 到 PDF 转换
- 将 DOCX 转换为 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:
- 上传DOCX文件到云端
- 使用 Python 将 DOCX 转换为 PDF
- 下载转换后的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)
下载转换后的文件
上面的代码示例会将转换后的 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)
不使用云存储的 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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。