HTML JPG PDF XML DOCX
  Product Family
PDF

Ekstrak Lampiran dari PDF di Python SDK

API untuk mengekstraksi lampiran dalam dokumen PDF dengan Aspose.PDF Cloud Python SDK

Get Started

Cara mengekstrak lampiran dari dokumen PDF menggunakan Cloud Python SDK

Untuk bekerja dengan lampiran dalam dokumen PDF, kita akan menggunakan Aspose.PDF Cloud Python SDK Cloud SDK ini membantu pemrogram Python dalam mengembangkan aplikasi pembuat, anotator, editor, dan konverter PDF berbasis cloud menggunakan bahasa pemrograman Python melalui Aspose.PDF REST API. Buka NPM manajer paket, cari Aspose.PDF Cloud, dan instal. Anda juga dapat menggunakan perintah berikut dari Console Manajer Paket.

Instalasi dari Github


     
    pip install git+https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-python.git

Perintah Console Manajer Paket

     
    pip install asposepdfcloud

Langkah-langkah untuk mendapatkan lampiran melalui Python SDK

Pengembang Aspose.PDF Cloud Python dapat dengan mudah mengekstrak lampiran dari dokumen PDF. Pengembang hanya memerlukan beberapa baris kode.

  1. Muat Aplikasi Rahasia dan Kunci Anda dari file JSON atau atur kredensial dengan cara lain
  2. Buat objek untuk terhubung ke Cloud API
  3. Tetapkan nama dengan jalur file dokumen Anda
  4. Lakukan tindakan ekstraksi lampiran
  5. Respons dari fungsi Cloud API akan berisi daftar lampiran

Persyaratan Sistem

Mudah untuk memulai dengan Aspose.PDF Cloud Python SDK dan tidak ada yang perlu diinstal. Cukup buat akun di Aspose for Cloud dan dapatkan informasi aplikasi Anda. Setelah Anda memiliki App SID & kunci, Anda siap untuk mencoba Aspose.PDF Cloud Python SDK.

  • CPU: 1GHz
  • RAM: 512Mb
  • Ruang bebas di disk: 20Mb
  • Sistem Operasi apa pun Microsoft Windows, Mac OS, Linux x32/x64
  • Python v4.8 atau lebih tinggi

 

Kode contoh ini menunjukkan cara mengekstrak semua lampiran dari dokumen PDF menggunakan PDF Cloud Python SDK


    import shutil
    import json
    import logging
    from pathlib import Path
    from asposepdfcloud import ApiClient, PdfApi, AttachmentsResponse, AttachmentResponse, Attachment

    # Configure logging
    logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")

    class Config:
        """Configuration parameters."""
        CREDENTIALS_FILE = Path(r"C:\\Projects\\ASPOSE\\Pdf.Cloud\\Credentials\\credentials.json")
        LOCAL_FOLDER = Path(r"C:\Samples")
        PDF_DOCUMENT_NAME = "sample_file_with_attachment.pdf"
        ATTACHMENT_PATH = ""

    class PdfAttachments:
        """Class for managing PDF attachments using Aspose PDF Cloud API."""
        def __init__(self, credentials_file: Path = Config.CREDENTIALS_FILE):
            self.pdf_api = None
            self._init_api(credentials_file)

        def _init_api(self, credentials_file: Path):
            """Initialize the API client."""
            try:
                with credentials_file.open("r", encoding="utf-8") as file:
                    credentials = json.load(file)
                    api_key, app_id = credentials.get("key"), credentials.get("id")
                    if not api_key or not app_id:
                        raise ValueError("init_api(): Error: Missing API keys in the credentials file.")
                    self.pdf_api = PdfApi(ApiClient(api_key, app_id))
            except (FileNotFoundError, json.JSONDecodeError, ValueError) as e:
                logging.error(f"init_api(): Failed to load credentials: {e}")

        def upload_document(self):
            """Upload a PDF document to the Aspose Cloud server."""
            if self.pdf_api:
                file_path = Config.LOCAL_FOLDER / Config.PDF_DOCUMENT_NAME
                try:
                    self.pdf_api.upload_file(Config.PDF_DOCUMENT_NAME, str(file_path))
                    logging.info(f"upload_document(): File {Config.PDF_DOCUMENT_NAME} uploaded successfully.")
                except Exception as e:
                    logging.error(f"upload_document(): Failed to upload file: {e}")

        def get_attachments(self):
            """Get attachments for the PDF document."""
            if self.pdf_api:
                try:
                    response : AttachmentsResponse = self.pdf_api.get_document_attachments(Config.PDF_DOCUMENT_NAME)
                    if response.code == 200:
                        logging.info(f"get_attachmnets(): attachments '{response.attachments}' for the document '{Config.PDF_DOCUMENT_NAME}'.")
                        Config.ATTACHMENT_PATH = response.attachments.list[0].links[0].href
                    else:
                        logging.error(f"get_attachmnets(): Failed to get attachments to the document. Response code: {response.code}")
                except Exception as e:
                    logging.error(f"get_attachmnets(): Error while adding attachment: {e}")

        def get_attachment_by_id(self):
            """Get attachment by Id for the PDF document and save it to local file."""
            if self.pdf_api:
                try:
                    response : AttachmentResponse = self.pdf_api.get_document_attachment_by_index(Config.PDF_DOCUMENT_NAME, Config.ATTACHMENT_PATH)
                    if response.code == 200:
                        attachment: Attachment = response.attachment
                        temp_file = self.pdf_api.get_download_document_attachment_by_index(Config.PDF_DOCUMENT_NAME, Config.ATTACHMENT_PATH)
                        local_path = Config.LOCAL_FOLDER / attachment.name
                        shutil.copy(temp_file, local_path)
                        logging.info(f"get_attachment_by_id(): attachment '{local_path}' for the document '{Config.PDF_DOCUMENT_NAME}' successfuly saved.")
                    else:
                        logging.error(f"get_attachment_by_id(): Failed to get attachment for the document '{Config.PDF_DOCUMENT_NAME}'. Response code: {response.code}")
                except Exception as e:
                    logging.error(f"get_attachment_by_id(): Error while get attachment: {e}")


    if __name__ == "__main__":
        pdf_attachments = PdfAttachments()
        pdf_attachments.upload_document()
        pdf_attachments.get_attachments()
        pdf_attachments.get_attachment_by_id()