Ekstrak Lampiran dari PDF di Python SDK
API untuk mengekstraksi lampiran dalam dokumen PDF dengan Aspose.PDF Cloud Python SDK
Get StartedCara 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.
- Muat Aplikasi Rahasia dan Kunci Anda dari file JSON atau atur kredensial dengan cara lain
- Buat objek untuk terhubung ke Cloud API
- Tetapkan nama dengan jalur file dokumen Anda
- Lakukan tindakan ekstraksi lampiran
- 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()