您可能需要使用用戶定義的模板從 PDF 或 Word 文檔中提取數據。您可以在雲端以編程方式解析任何文檔並提取字段和表格數據。本文將解釋如何在 Python 中使用 REST API 從 PDF 文檔中提取特定數據。
本文應涵蓋以下主題:
文檔解析器 REST API 和 Python SDK
為了解析 PDF 文檔並基於模板提取數據,我將使用 GroupDocs.Parser Cloud 的 Python SDK API。它允許您解析來自所有流行文檔類型的數據,例如 PDF 文檔、Microsoft Office 文檔和 OpenDocument 文件格式。您可以使用 SDK 通過模板提取文本、圖像和解析數據。它還為雲 API 提供 .NET、Java、PHP、Ruby 和 Node.js SDK 作為其文檔解析器家族成員。
您可以使用 pip(python 的軟件包安裝程序)將 GroupDocs.Parser Cloud 安裝到您的 Python 項目中,在控制台中使用以下命令從 pdf 中提取信息:
pip install groupdocs_parser_cloud
請從 dashboard 獲取您的 Client ID 和 Client Secret 並添加如下所示的代碼:
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文件到雲端
- 使用 Python 進行基於模板的數據提取
上傳文件
首先,使用下面給出的代碼示例將 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 文件中提取數據。
- 創建 ParseApi 的實例
- 定義 ParseOptions 並設置 PDF 文件的路徑
- 創建模板作為對象
- 創建 ParseRequest
- 通過調用 ParseApi.parse() 方法獲取結果
以下代碼示例顯示瞭如何使用 REST API 根據定義的模板從 PDF 文檔中提取數據。
# 接口初始化
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 通過模板文件提取數據
您還可以通過以編程方式提供基於 JSON 的模板文件來從 PDF 文檔中提取數據。請按照以下步驟通過提供模板文件來解析文檔。
- 創建 ParseApi 的實例
- 定義解析選項
- 設置PDF文件的路徑
- 設置模板文件的路徑
- 創建 ParseRequest
- 通過調用 ParseApi.parse() 方法獲取結果
以下代碼示例展示瞭如何使用 REST API 根據 JSON 文件中提供的模板解析 PDF 文檔並提取數據。請按照前面提到的步驟上傳文件。
# 接口初始化
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提取器?請嘗試以下免費在線 PDF 解析工具和免費 pdf 頁面提取器。這個在線 pdf 提取器和提取 pdf 在線免費工具是使用上述 API 開發的。 https://products.groupdocs.app/parser/pdf
結論
在本文中,您學習瞭如何根據云端提供的模板從PDF文檔中提取特定數據。您還學習瞭如何創建模闆對象並提供 JSON 格式的模板。本文還介紹瞭如何以編程方式將 PDF 文件上傳到雲端以在線提取 pdf 數據。您可以使用 文檔 了解有關 GroupDocs.Parser Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。
問一個問題
如果您對從pdf中提取數據和在線提取pdf數據有任何疑問,請隨時在免費支持論壇上向我們提問