Витягніть дані зі сканованого PDF-файлу або скопіюйте PDF-файл за допомогою інструмента для вилучення сторінок PDF-файлів онлайн.

Як витягти дані з PDF за допомогою Python

Можливо, вам знадобиться витягти дані з документів PDF або Word за допомогою шаблону, визначеного користувачем. Ви можете аналізувати будь-який документ і видобувати поля та дані таблиці програмним шляхом у хмарі. У цій статті пояснюється, як отримати певні дані з PDF-документів за допомогою REST API у Python.

У цій статті будуть розглянуті такі теми:

API REST аналізатора документів і SDK для Python

Для аналізу PDF документа та вилучення даних на основі шаблону я буду використовувати API Python SDK of GroupDocs.Parser Cloud. Він дозволяє аналізувати дані з усіх популярних типів документів, таких як документи PDF, документи Microsoft Office і формати файлів OpenDocument. Ви можете видобувати текст, зображення та аналізувати дані за шаблоном за допомогою SDK. Він також надає пакети SDK .NET, Java, PHP, Ruby та Node.js як члени сімейства парсерів документів для Cloud API.

Ви можете встановити GroupDocs.Parser Cloud у свій проект Python за допомогою pip (інсталятор пакета для python), використовуючи таку команду в консолі, щоб отримати інформацію з pdf:

pip install groupdocs_parser_cloud

Отримайте свій ідентифікатор клієнта та секрет клієнта з інформаційної панелі та додайте код, як показано нижче:

client_id = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5"
client_secret = "479db2b01dcb93a3d4d20efb16dea971"

configuration = groupdocs_parser_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Видобуток даних за допомогою об’єкта шаблону за допомогою Python

Ви можете отримати дані з PDF-документів за допомогою шаблону, виконавши прості кроки, згадані нижче:

Завантажте документ

Перш за все, завантажте PDF-документ у хмару за допомогою наведеного нижче прикладу коду:

# Створіть екземпляр API
file_api = groupdocs_parser_cloud.FileApi.from_config(configuration)

# завантажити зразки файлів
request = groupdocs_parser_cloud.UploadFileRequest("companies.pdf", "C:\\Files\\companies.pdf", my_storage)
response = file_api.upload_file(request)

У результаті завантажений PDF-файл буде доступний у розділі файлів вашої інформаційної панелі в хмарі.

Вилучення даних на основі шаблонів за допомогою Python

Виконайте наведені нижче кроки, щоб отримати дані з PDF-файлу на основі шаблону програмним шляхом.

  1. Створіть екземпляр ParseApi
  2. Визначте ParseOptions і встановіть шлях до PDF-файлу
  3. Створити шаблон як об’єкт
  4. Створіть ParseRequest
  5. Отримайте результати, викликавши метод ParseApi.parse().

У наведеному нижче прикладі коду показано, як витягти дані відповідно до визначеного шаблону з документа PDF за допомогою REST API.

# ініціалізація API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# визначити параметри аналізу
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"

# Отримати об’єкт шаблону
options.template = GetTemplate()  

# розібрати запит
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Показати результати
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Нижче наведено шаблон, створений відповідно до документа PDF.

def GetTemplate():
        field1 = groupdocs_parser_cloud.Field()
        field1.field_name = "Address"
        fieldPosition1 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition1.field_position_type = "Regex"
        fieldPosition1.regex = "Company address:"
        field1.field_position = fieldPosition1

        field2 = groupdocs_parser_cloud.Field()
        field2.field_name = "CompanyAddress"
        fieldPosition2 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition2.field_position_type = "Linked"
        fieldPosition2.linked_field_name = "ADDRESS"
        fieldPosition2.is_right_linked = True
        size2 = groupdocs_parser_cloud.Size()
        size2.width = 100
        size2.height = 10
        fieldPosition2.search_area = size2
        fieldPosition2.auto_scale = True
        field2.field_position = fieldPosition2
        
        field3 = groupdocs_parser_cloud.Field()
        field3.field_name = "Company"
        fieldPosition3 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition3.field_position_type = "Regex"
        fieldPosition3.regex = "Company name:"
        field3.field_position = fieldPosition3
        
        field4 = groupdocs_parser_cloud.Field()
        field4.field_name = "CompanyName"
        fieldPosition4 = groupdocs_parser_cloud.FieldPosition()
        fieldPosition4.field_position_type = "Linked"
        fieldPosition4.linked_field_name = "Company"
        fieldPosition4.is_right_linked = True
        size4 = groupdocs_parser_cloud.Size()
        size4.width = 100
        size4.height = 10
        fieldPosition4.search_area = size4
        fieldPosition4.auto_scale = True
        field4.field_position = fieldPosition4
        
        table = groupdocs_parser_cloud.Table()
        table.table_name = "Companies"
        detectorparams = groupdocs_parser_cloud.DetectorParameters()
        rect = groupdocs_parser_cloud.Rectangle()
        size = groupdocs_parser_cloud.Size()
        size.height = 60
        size.width = 480
        position = groupdocs_parser_cloud.Point()
        position.x = 77
        position.y = 279
        rect.size = size
        rect.position = position
        detectorparams.rectangle = rect
        table.detector_parameters = detectorparams
        
        fields = [field1, field2, field3, field4]
        tables = [table]
        
        template = groupdocs_parser_cloud.Template()
        template.fields = fields
        template.tables = tables
        return template
Витягнуті дані шляхом аналізу документа за допомогою шаблону

Витягнуті дані шляхом аналізу документа за допомогою шаблону

Витягти дані за допомогою файлу шаблону за допомогою Python

Ви також можете отримати дані з документа PDF, надавши файл шаблону на основі JSON програмним шляхом. Виконайте наведені нижче кроки, щоб проаналізувати документ, надавши файл шаблону.

  1. Створіть екземпляр ParseApi
  2. Визначте ParseOptions
  3. Встановіть шлях до файлу PDF
  4. Встановіть шлях до файлу шаблону
  5. Створіть ParseRequest
  6. Отримайте результати, викликавши метод ParseApi.parse().

У наведеному нижче прикладі коду показано, як розібрати PDF-документ і витягти дані відповідно до шаблону, наданого у файлі JSON, за допомогою REST API. Щоб завантажити файли, виконайте наведені вище дії.

# ініціалізація API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# визначити параметри аналізу
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
options.template_path = "template.json"

# розібрати запит
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# показати результати
for data in result.fields_data:
    if data.page_area.page_text_area is not None:
        print("Field name: " + data.name + ". Text :" + data.page_area.page_text_area.text)

    if data.page_area.page_table_area is not None:
        print("Table name: " + data.name)
       for cell in data.page_area.page_table_area.page_table_area_cells:
            print("Table cell. Row " + str(cell.row_index) + " column " + str(cell.column_index) + ". Text: " + cell.page_area.page_text_area.text);

Нижче наведено шаблон у форматі JSON.

{
  "Fields": [
    {
      "FieldName": "Address",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyaddress:"
      }
    },
    {
      "FieldName": "CompanyAddress",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "ADDRESS",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    },
    {
      "FieldName": "Company",
      "FieldPosition": {
        "FieldPositionType": "Regex",
        "Regex": "Companyname:"
      }
    },
    {
      "FieldName": "CompanyName",
      "FieldPosition": {
        "FieldPositionType": "Linked",
        "LinkedFieldName": "Company",
        "IsRightLinked": true,
        "SearchArea": {
          "Height": 10.0,
          "Width": 100.0
        },
        "AutoScale": true
      }
    }
  ],
  "Tables": [
    {
      "TableName": "Companies",
      "DetectorParameters": {
        "Rectangle": {
          "Position": {
            "X": 77.0,
            "Y": 279.0
          },
          "Size": {
            "Height": 41.0,
            "Width": 480.0
          }
        }
      }
    }
  ]
}

Розпакуйте PDF-файл онлайн

Як використовувати PDF Extractor онлайн безкоштовно? Будь ласка, спробуйте наведений нижче безкоштовний онлайн-інструмент аналізу PDF-файлів і безкоштовний інструмент для вилучення сторінок PDF-файлів. Цей безкоштовний онлайн-інструмент для розтягування PDF-файлів і PDF-файлів розроблено з використанням вищезазначеного API. https://products.groupdocs.app/parser/pdf

Висновок

У цій статті ви дізналися, як витягувати певні дані з документів PDF відповідно до наданого шаблону в хмарі. Ви також дізналися, як створити об’єкт шаблону та надати шаблон у форматі JSON. У цій статті також пояснюється, як програмно завантажити PDF-файл у хмару для вилучення PDF-даних онлайн. Ви можете дізнатися більше про GroupDocs.Parser Cloud API, використовуючи документацію. Ми також надаємо розділ API Reference, який дозволяє візуалізувати наші API та взаємодіяти з ними безпосередньо через браузер.

Задайте питання

Якщо у вас є будь-які запитання щодо вилучення даних із PDF-файлу та вилучення даних PDF-файлів онлайн, будь ласка, не соромтеся запитати нас на безкоштовному форумі підтримки

Дивись також