PNG JPG BMP TIFF PDF
Aspose.PDF  pour Python

Extraire une table depuis un PDF dans le SDK Python

Extraire une table d’un document PDF en utilisant le Cloud avec le SDK Cloud Python.

Get Started

Comment extraire des tables depuis un PDF via le SDK Cloud Python

Pour extraire des tables depuis un PDF, nous utiliserons Aspose.PDF Cloud Python SDK. Ce SDK Cloud aide les programmeurs Python à développer des applications créatrices, annotatrices, éditrices et convertisseuses de PDFs basées sur le cloud en utilisant le langage de programmation Python via l’API REST Aspose.PDF. Créez simplement un compte sur Aspose for Cloud et obtenez vos informations d’application. Une fois que vous avez le SID de l’application et la clé, vous êtes prêt à utiliser le SDK Cloud Python Aspose.PDF. Si le package Python est hébergé sur Github, vous pouvez l’installer directement depuis Github:

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 tables depuis un PDF via le SDK Python

Les développeurs Aspose.PDF Cloud peuvent facilement charger et extraire des tables d’un PDF en quelques lignes de code.

  1. Installer le SDK Python
  2. Télécharger un document PDF sur le serveur Aspose Cloud
  3. Télécharger le document PDF traité depuis le serveur Aspose Cloud
  4. Obtenir toutes les tables
 

Extraire des tables depuis un PDF en utilisant Python


    import shutil
    import json
    import logging
    from pathlib import Path
    from asposepdfcloud import ApiClient, PdfApi, Table, Row, Cell, FontStyles, GraphInfo, TextRect, TextState, Color, BorderInfo
    # 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.pdf"
        LOCAL_RESULT_DOCUMENT_NAME = "output_sample.pdf"
        PAGE_NUMBER = 2
        TABLE_ID = "GE5TCOZSGAYCYNRQGUWDINZVFQ3DGMA"

    class PdfTables:
        """ Class for managing PDF tables 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 _show_tables_info(self, tables, prefix):
            if tables and len(tables) > 0 :
                for table in tables:
                    logging.info(f"{prefix} => id: '{table.id}', page: '{table.page_num}', rows: '{len(table.row_list)}', columns: '{len(table.row_list[0].cell_list)}'")
            else:
                logging.error(f"showBoormarks() error: array of tables is empty!")

        def get_all_tables(self):
            if self.pdf_api:
                resultTabs = self.pdf_api.get_document_tables(Config.PDF_DOCUMENT_NAME)

                if resultTabs.code == 200 and resultTabs.tables:
                    if not resultTabs.tables.list or len(resultTabs.tables.list) == 0:
                        logging.error("get_all_tables(): Unexpected error - tables is null or empty!!!")
                    self._show_tables_info(resultTabs.tables.list, "All tables")
                    return resultTabs.tables.list
                else:
                    logging.error("get_all_tables(): Unexpected error - can't get links!!!")
        
        def get_table_by_id (self):
            if self.pdf_api:
                resultTabs =self.pdf_api.get_table(Config.PDF_DOCUMENT_NAME, Config.TABLE_ID)

                if resultTabs.code == 200 and resultTabs.table:
                    self._show_tables_info( [ resultTabs.table ], "Table by Id")
                    return resultTabs.table
                else:
                    logging.error("get_table_by_id(): Unexpected error - can't get links!!!")

    if __name__ == "__main__":
        pdf_tables = PdfTables()
        pdf_tables.upload_document()
        pdf_tables.get_all_tables()
        pdf_tables.get_table_by_id()
 

Travailler avec des tables dans un PDF

Les tables fournissent un format structuré pour présenter des données de manière systématique, facilitant la compréhension et l’analyse des informations par les lecteurs. Elles améliorent également l’attrait visuel d’un document, ajoutant du professionnalisme et de l’organisation. Lorsqu’il s’agit de données numériques ou comparatives, les tables améliorent la clarté en regroupant les informations connexes dans un format facile à lire. De plus, les tables peuvent incorporer du contenu en temps réel ou généré dynamiquement, tel que des données de bases de données ou des tableaux de bord analytiques. Extraire la table des documents PDF avec Aspose.PDF Cloud Python SDK.

Avec notre bibliothèque Python vous pouvez :

  • Combiner des documents PDF.
  • Diviser des fichiers PDF.
  • Convertir des PDF en d’autres formats, et inversement.
  • Manipuler des annotations.
  • Travailler avec des images dans des PDF, etc.
  • Vous pouvez essayer notre application gratuite pour tester la fonctionnalité en ligne.