Wyodrębnij dane ze zeskanowanego pliku PDF lub zeskrobanego pliku PDF za pomocą narzędzia PDF Page Extractor online.

Jak wyodrębnić dane z pliku PDF za pomocą Python

Może być konieczne wyodrębnienie danych z dokumentów PDF lub Word przy użyciu szablonu zdefiniowanego przez użytkownika. Możesz analizować dowolny dokument i programowo wyodrębniać pola i dane z tabeli w chmurze. W tym artykule wyjaśniono, jak wyodrębnić określone dane z dokumentów PDF za pomocą interfejsu API REST w języku Python.

W tym artykule zostaną omówione następujące tematy:

Document Parser REST API i Python SDK

Do analizowania dokumentu PDF i wyodrębniania danych na podstawie szablonu będę używał API Python SDK of GroupDocs.Parser Cloud. Pozwala analizować dane ze wszystkich popularnych typów dokumentów, takich jak dokumenty PDF, dokumenty Microsoft Office i formaty plików OpenDocument. Możesz wyodrębniać tekst, obrazy i analizować dane za pomocą szablonu za pomocą zestawu SDK. Udostępnia również zestawy SDK .NET, Java, PHP, Ruby i Node.js jako członkowie rodziny parserów dokumentów dla Cloud API.

Możesz zainstalować GroupDocs.Parser Cloud w swoim projekcie Python za pomocą pip (package installer for python), używając następującego polecenia w konsoli, aby wyodrębnić informacje z pliku pdf:

pip install groupdocs_parser_cloud

Uzyskaj swój identyfikator klienta i klucz tajny klienta z panelu nawigacyjnego i dodaj kod, jak pokazano poniżej:

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 = ""

Wyodrębnij dane według obiektu szablonu za pomocą Python

Możesz wyodrębnić dane z dokumentów PDF za pomocą szablonu, wykonując proste czynności wymienione poniżej:

Prześlij dokument

Przede wszystkim prześlij dokument PDF do chmury, korzystając z przykładowego kodu podanego poniżej:

# Utwórz instancję interfejsu API
file_api = groupdocs_parser_cloud.FileApi.from_config(configuration)

# wgraj przykładowe pliki
request = groupdocs_parser_cloud.UploadFileRequest("companies.pdf", "C:\\Files\\companies.pdf", my_storage)
response = file_api.upload_file(request)

W rezultacie przesłany plik PDF będzie dostępny w sekcji plików Twojego pulpitu nawigacyjnego w chmurze.

Ekstrakcja danych oparta na szablonach przy użyciu języka Python

Wykonaj czynności wymienione poniżej, aby programowo wyodrębnić dane z pliku PDF na podstawie szablonu.

  1. Utwórz instancję ParseApi
  2. Zdefiniuj ParseOptions i ustaw ścieżkę do pliku PDF
  3. Utwórz szablon jako obiekt
  4. Utwórz żądanie parsowania
  5. Uzyskaj wyniki, wywołując metodę ParseApi.parse().

Poniższy przykładowy kod pokazuje, jak wyodrębnić dane zgodnie ze zdefiniowanym szablonem z dokumentu PDF przy użyciu interfejsu API REST.

# inicjalizacja API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# zdefiniuj opcje parsowania
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"

# Pobierz obiekt szablonu
options.template = GetTemplate()  

# przeanalizować żądanie
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Pokaż wyniki
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);

Poniżej znajduje się szablon stworzony na podstawie dokumentu 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
Wyodrębnione dane poprzez analizę dokumentu przy użyciu szablonu

Wyodrębnione dane przez analizę dokumentu przy użyciu szablonu

Wyodrębnij dane według pliku szablonu za pomocą Python

Możesz także wyodrębnić dane z dokumentu PDF, dostarczając programowo plik szablonu w formacie JSON. Wykonaj czynności wymienione poniżej, aby przeanalizować dokument, dostarczając plik szablonu.

  1. Utwórz instancję ParseApi
  2. Zdefiniuj opcje analizy
  3. Ustaw ścieżkę do pliku PDF
  4. Ustaw ścieżkę do pliku szablonu
  5. Utwórz żądanie parsowania
  6. Uzyskaj wyniki, wywołując metodę ParseApi.parse().

Poniższy przykładowy kod pokazuje, jak przeanalizować dokument PDF i wyodrębnić dane zgodnie z szablonem dostarczonym w pliku JSON przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać pliki.

# inicjalizacja API
parseApi = groupdocs_parser_cloud.ParseApi.from_config(configuration)

# zdefiniuj opcje parsowania
options = groupdocs_parser_cloud.ParseOptions()
options.file_info = groupdocs_parser_cloud.FileInfo()
options.file_info.file_path = "companies.pdf"
options.template_path = "template.json"

# przeanalizować żądanie
request = groupdocs_parser_cloud.ParseRequest(options)
result = parseApi.parse(request)

# Pokaż wyniki
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);

Poniżej znajdziesz szablon w formacie 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
          }
        }
      }
    }
  ]
}

Wyodrębnij plik PDF online

Jak bezpłatnie korzystać z ekstraktora PDF online? Wypróbuj następujące bezpłatne narzędzie online do analizowania plików PDF i bezpłatny ekstraktor stron PDF. Ten internetowy ekstraktor plików PDF i bezpłatne narzędzie do wyodrębniania plików PDF online zostało opracowane przy użyciu powyższego interfejsu API. https://products.groupdocs.app/parser/pdf

Wniosek

W tym artykule nauczyłeś się, jak wyodrębnić określone dane z dokumentów PDF zgodnie z dostarczonym szablonem w chmurze. Dowiedziałeś się również, jak utworzyć obiekt szablonu i udostępnić szablon w formacie JSON. W tym artykule wyjaśniono również, jak programowo przesłać plik PDF do chmury w celu ekstrakcji danych PDF online. Możesz dowiedzieć się więcej o GroupDocs.Parser Cloud API korzystając z dokumentacji. Udostępniamy również sekcję Informacje o interfejsach API, która umożliwia wizualizację naszych interfejsów API i interakcję z nimi bezpośrednio w przeglądarce.

Zadać pytanie

Jeśli masz jakiekolwiek pytania dotyczące wyodrębniania danych z plików pdf i ekstrakcji danych pdf online, możesz je zadać na Bezpłatne forum wsparcia

Zobacz też