Извлеките данные из отсканированного PDF-файла или извлеките PDF-файл с помощью онлайн-экстрактора PDF-страниц.

Как извлечь данные из PDF с помощью Python

Вам может потребоваться извлечь данные из документов PDF или Word с помощью пользовательского шаблона. Вы можете анализировать любой документ и программно извлекать поля и табличные данные в облаке. В этой статье объясняется, как извлекать определенные данные из PDF-документов с помощью REST API в Python.

В этой статье должны быть раскрыты следующие темы:

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

Для разбора документа 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, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер.

Задайте вопрос

Если у вас есть какие-либо вопросы об извлечении данных из pdf и извлечении данных из pdf в Интернете, не стесняйтесь задавать их нам на Форуме бесплатной поддержки

Смотрите также