Microsoft Project是微软公司开发的一种广泛使用的项目管理工具。作为 Python 开发人员,您可以在云端以编程方式轻松地将 Microsoft Project 数据 (.mpp) 文件转换为 PDF。项目数据的转换将使您能够在利益相关者之间共享项目进度表。本文将重点介绍如何使用 Python 中的 REST API 将 Microsoft Project MPP 转换为 PDF。

在 Python 中将 MPP 转换为 PDF

本文应涵盖以下主题:

文档转换 REST API 和 Python SDK

将 Microsoft Project MPP 转换为 PDF

对于转换 Microsoft 项目 MPP,我将使用 GroupDocs.Conversion Cloud 的 Python SDK API。它允许您将文档无缝转换为您需要的任何格式。您可以轻松地在 50 多种文档和图像之间进行转换,包括所有 Microsoft Office 和 OpenDocument 文件格式、PDF 文档、HTML、CAD、光栅图像等等。它还为云 API 提供 .NET、Java、PHP、Ruby、Android 和 Node.js SDK 作为其文档转换家族成员

您可以使用 PyPI (Python Package Index) 中的 pip (package installer for python) 在控制台中使用以下命令将 GroupDocs.Conversion Cloud 安装到您的 Python 项目:

pip install groupdocs_conversion_cloud

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

client_id = "112f0f38-9dae-42d5-b4fc-cc84ae644972"
client_secret = "16ad3fe0bdc39c910f57d2fd48a5d618"
my_storage = ""

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

在 Python 中使用 REST API 将 Microsoft Project MPP 转换为 PDF

您可以按照以下简单步骤将项目数据从 MPP 转换为 PDF 文件:

上传文件

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

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

request = groupdocs_conversion_cloud.UploadFileRequest("sample.mpp", "C:\\Files\\sample.mpp", my_storage)
response = file_api.upload_file(request)

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

在 Python 中将 MPP 转换为 PDF

请按照下面提到的步骤以编程方式将 MPP 转换为 PDF 文档。

  • 创建一个 ConvertApi 的实例
  • 创建 ConvertSettings 实例
  • 设置文件路径
  • 将格式设置为“pdf”
  • 提供输出文件路径
  • 如果需要,定义 PdfConvertOptions
  • 创建 ConvertDocumentRequest
  • 调用ConvertApi.convert\document()方法获取结果

以下代码片段显示了如何使用 REST API 将项目数据从 MPP 转换为 PDF 文档。

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

# 准备转换设置
settings = groupdocs_conversion_cloud.转变Settings()
settings.file_path = "sample.mpp"
settings.format = "pdf"
settings.output_path = "Output"

# PDF 转换选项
convertOptions = groupdocs_conversion_cloud.Pdf转变Options()
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.转变DocumentRequest(settings)

# 转变
result = apiInstance.convert_document(request)

您还可以将 Microsoft Project MPP 文件转换为各种其他流行格式。例如 MPP 到 DOCX、MPP 到 XLSX、MPP 到 PNG、MPP 到 JPG、MPP 到 GIF 和 MPP 到 TIFF。

下载更新文件

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

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

request = groupdocs_conversion_cloud.DownloadFileRequest("Output\\sample.pdf", my_storage)
response = file_api.download_file(request)

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

在没有云存储的情况下将 MPP 转换为 PDF

请按照以下步骤将 MPP 直接转换为 PDF 文档,而无需使用云存储。

  • 创建一个 ConvertApi 的实例
  • 创建 ConvertSettings 实例
  • 提供文件路径
  • 将格式设置为“pdf”
  • 提供输出文件路径
  • 如果需要,定义 PdfConvertOptions
  • 创建 ConvertDocumentDirectRequest
  • 通过调用ConvertApi.convert\document\direct()方法获取结果

以下代码片段显示了如何在不使用云存储的情况下将项目数据从 MPP 转换为 PDF 文档。因此,转换后的 PDF 文档将保存在本地计算机的临时文件夹中。请按照前面提到的步骤上传文件。

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

# 准备请求
request = groupdocs_conversion_cloud.转变DocumentDirectRequest("pdf", "C:\\Files\\sample.mpp")

# 转变
result = apiInstance.convert_document_direct(request)

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

结论

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

也可以看看