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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看