提取 PDF 附件

PDF 文件由文字和圖形組成,其中可能包含整個文件作為附件。這使得文件集交換變得更容易、更可靠。附件窗格為您提供了檢視、插入、刪除和匯出附件的中心位置。另請注意,如果將 PDF 檔案移至新位置,其中的附件也會隨之移動。附件可能包含指向或來自父文件或其他附件的連結。請不要將附加的評論與文件附件混淆。

在本文中,我們將詳細討論如何讀取 PDF 文件中附件的資訊以及如何使用 Python 從 PDF 下載附件。無需下載和安裝特定的軟體,並在雲端中執行所有所需的操作。

PDF處理API

Aspose.PDF Cloud 是我們基於 REST 的 API,提供創建、編輯和轉換各種格式為 PDF 以及將 PDF 文件渲染為包括 XLSXPPTXDOCXEPUBHTMLJPEG 等格式的功能。由於採用 REST 架構,因此可以在任何平台上存取 API。因此,您可以在桌面、Web、行動、雲端和混合應用程式中實現 PDF 處理功能。

用於 PDF 處理的 Python SDK

為了進一步方便我們的客戶,我們創建了特定的程式設計 SDK,以便您可以使用您選擇的語言來獲得所有 PDF 處理功能。同樣,為了方便 Python 開發人員,我們創建了名為 Aspose.PDF Cloud SDK for Python 的 Python 程式設計 SDK,它是 Aspose.PDF Cloud API 的包裝器。現在開始,第一步是安裝。該 SDK 可透過 PIPGitHub 儲存庫免費下載。現在在終端機/命令提示字元上執行以下命令,在系統上安裝最新版本的 SDK。

pip install asposepdfcloud

PyCharm IDE

如果您正在使用 PyCharm IDE,您可以直接將 SDK 作為相依性新增至您的專案。

檔案 ->設定 ->專案 ->Python 解釋器 ->asposepdfcloud

標題

Image 1:- PyCharm settings option.

Aspose.PDF Python 套件

圖2:- Aspose.Pdf Cloud Python 套件。

免費雲端儀表板帳戶

安裝後,下一個主要步驟是透過 Aspose.Cloud 儀表板 免費訂閱我們的雲端服務。此訂閱的目的是僅允許授權人員存取我們的文件處理服務。如果您有 GitHub 或 Google 帳戶,只需註冊或點擊 建立新帳戶 按鈕並提供所需的資訊。現在使用憑證登入儀表板並從儀表板展開應用程式部分並向下捲動至用戶端憑證部分以查看用戶端 ID 和用戶端金鑰詳細資訊。

客戶端憑證Client credentials

圖 3:- Aspose.Cloud 儀表板上的客戶端憑證。

從 PDF 讀取附件信息

請依照以下說明閱讀PDF文件中的附件資訊。

  • 首先,我們需要建立一個 ApiClient 類別的實例,並提供客戶端 ID 客戶端金鑰作為參數。
  • 其次,建立一個 PdfApi 類別的實例,該實例以 ApiClient 物件作為輸入參數。
  • 現在呼叫 PdfApi 的 getdocumentattachments(…) 方法來取得 PDF 附件詳細資訊。
def readAttachmentDetails():
    try:
        #Client credentials
        client_secret = "1c9379bb7d701c26cc87e741a29987bb"
        client_id = "bbf94a2c-6d7e-4020-b4d2-b9809741374e"

        #initialize PdfApi client instance using client credetials
        pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)

        # 建立 PdfApi 實例並傳遞 PdfApiClient 作為參數
        pdf_api = PdfApi(pdf_api_client)

        #source image file
        input_file = 'PdfWithEmbeddedFiles.pdf'
        
        # 呼叫 API 提取附件詳細信息
        response = pdf_api.get_document_attachments(name = input_file)
        print(response)
        # 在控制台中列印訊息(可選)
        print('PDF Attachment details successfully retrieved !')    
    except ApiException as e:
        print("Exception while calling PdfApi: {0}".format(e))
        print("Code:" + str(e.code))
        print("Message:" + e.message)

供您參考,可以從 PdfWithEmbeddedFiles.pdf 下載上述範例中使用的範例 PDF 文件。

閱讀具體附件資訊

該API也方便我們讀取PDF文件中特定附件的資訊。為此,請嘗試使用 GetDocumentAttachmentByIndex 方法。請參閱以下檢索到的第一個附件的詳細資訊。

{'attachment': {'check_sum': '33DCE2EE8BD095A3C4E2A67058104D35',
                'creation_date': '11/24/2008 02:02:36.000 PM',
                'description': None,
                'links': [{'href': '/PdfWithEmbeddedFiles.pdf/attachments/1',
                           'rel': 'self',
                           'title': None,
                           'type': None}],
                'mime_type': 'application/pdf',
                'modification_date': '05/03/2007 10:37:41.000 AM',
                'name': 'example1.pdf',
                'size': 10984},
 'code': 200,
 'status': 'OK'}

從 PDF 下載特定附件

請按照下面指定的說明從 PDF 文件中下載特定附件。

  • 首先,我們需要建立一個 ApiClient 類別的實例,並提供客戶端 ID 客戶端金鑰作為參數。
  • 其次,建立一個 PdfApi 類別的實例,該實例以 ApiClient 物件作為輸入參數。
  • 現在呼叫 GetDownloadDocumentAttachmentByIndex(…) 方法從 PDF 檔案下載附件。
def downloadAttachment():
    try:
        #Client credentials
        client_secret = "1c9379bb7d701c26cc87e741a29987bb"
        client_id = "bbf94a2c-6d7e-4020-b4d2-b9809741374e"

        #initialize PdfApi client instance using client credetials
        pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)

        # 建立 PdfApi 實例並傳遞 PdfApiClient 作為參數
        pdf_api = PdfApi(pdf_api_client)

        #source image file
        input_file = 'PdfWithEmbeddedFiles.pdf'
        
        # 呼叫 API 從 PDF 檔案下載第一個附件
        response = pdf_api.get_download_document_attachment_by_index(name = input_file, attachment_index=1)
        print(response)
        # 在控制台中列印訊息(可選)
        print('PDF Attachment successfully downloaded !')    
    except ApiException as e:
        print("Exception while calling PdfApi: {0}".format(e))
        print("Code:" + str(e.code))
        print("Message:" + e.message)

使用 cURL 指令讀取附件訊息

REST API 可以透過 cURL 命令輕鬆存取,並且我們可以使用簡單的終端應用程式來執行它們。由於 Aspose.PDF Cloud 是按照 REST 架構開發的,因此我們也可以透過 cURL 指令存取它們。但是,作為先決條件,我們需要根據您在 Aspose.Cloud 儀表板上指定的個人用戶端憑證產生 JSON Web Token (JWT)。這是強制性的,因為我們的 API 只有註冊用戶才能存取。請執行以下命令來產生 JWT 令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

現在我們有了 JWT 令牌,我們可以執行以下命令從 PDF 文件中獲取特定附件的資訊。

curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/PdfWithEmbeddedFiles.pdf/attachments/1" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

使用 cURL 指令下載特定附件

請執行以下命令下載 PDF 檔案的第二個附件並將其保存在本機磁碟機上。

curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/PdfWithEmbeddedFiles.pdf/attachments/2/download" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Attachment.txt

結論

本文說明如何讀取和下載 PDF 文件中的附件的細節和步驟。我們已經探索了使用 Python 程式碼片段以及使用 cURL 命令的步驟。除了附件處理之外,該 API 還提供了大量與 PDF 文件其他元素相關的功能,其詳細資訊可在開發者指南中找到。此外,Aspose.PDF Cloud SDK for Python 的完整原始碼已經可以透過GitHub下載。如果您在使用 API 時遇到任何問題或有任何其他疑問,請隨時透過 免費產品支援論壇 與我們聯絡。

相關文章

我們還建議您訪問以下連結以了解更多資訊: