Extraire les pièces jointes des PDF dans Python SDK
API pour extraire les pièces jointes dans les documents PDF avec Aspose.PDF Cloud Python SDK
Get StartedComment extraire les pièces jointes des documents PDF en utilisant Cloud Python SDK
Pour travailler avec les pièces jointes dans les documents PDF, nous utiliserons Aspose.PDF Cloud Python SDK Ce SDK Cloud aide les programmeurs Python à développer des applications de création, annotation, édition et conversion de PDF basées sur le cloud en utilisant le langage de programmation Python via l’API REST Aspose.PDF. Ouvrez NPM gestionnaire de paquets, recherchez Aspose.PDF Cloud, et installez. Vous pouvez également utiliser la commande suivante depuis la console du gestionnaire de paquets.
Installation depuis Github
pip install git+https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-python.git
Commande de la console du gestionnaire de paquets
pip install asposepdfcloud
Étapes pour obtenir des pièces jointes via Python SDK
Les développeurs Aspose.PDF Cloud Python peuvent facilement extraire des pièces jointes des documents PDF. Les développeurs n’ont besoin que de quelques lignes de code.
- Chargez votre clé secrète et votre clé d’application depuis le fichier JSON ou définissez les identifiants d’une autre manière
- Créez un objet pour se connecter à l’API Cloud
- Définissez le nom avec le chemin de votre fichier document
- Effectuez les actions d’extraction de pièces jointes
- La réponse de la fonction API Cloud contiendra une liste de pièces jointes
Exigences du système
Il est facile de commencer avec Aspose.PDF Cloud Python SDK et il n’y a rien à installer. Créez simplement un compte chez Aspose for Cloud et obtenez les informations de votre application. Une fois que vous avez l’App SID & key, vous êtes prêt à utiliser Aspose.PDF Cloud Python SDK.
- CPU : 1GHz
- RAM : 512Mo
- Espace libre sur le disque : 20Mo
- Tout système d’exploitation Microsoft Windows, Mac OS, Linux x32/x64
- Python v4.8 ou supérieur
Ce code exemple montre comment extraire toutes les pièces jointes d'un document PDF en utilisant 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()