PDF识别接口上线

发布者:看典古籍 发布时间:2025-02-28 16:06 阅读次数:40

PDF识别接口上线

看典古籍网站现已上线古籍PDF文件识别API接口,接口鉴权使用Token和账号的方式。完整识别过程分三个接口完成:创建任务、查询任务进度、下载识别结果。

当前API识别并发限制为1个文件,即同时只允许创建一个识别任务,识别完成后再创建新的任务。

接口文档地址:https://www.kandianguji.com/api_documentation

图像

接口三:/api/pdf_ocr_api PDF识别接口

API接口说明:

本接口实现PDF全书识别功能,通过接口上传PDF文件,识别完成后下载识别结果。

API接口地址: https://ocr.kandianguji.com/api/pdf_ocr_api

API Token查看:

您可以 点击此处 查看您的API Token信息

请求参数:

token:您所创建的API Token, 点此申请 必传

email:创建API Token的账号,看典古籍网站的注册账号 必传

file:PDF文件(单个) 必传

det_mode:文字内容排版样式,目前有三种可选:auto(自动识别)、sp(竖向排版)、hp(横向排版);字符串类型,默认值:auto

image_size:识别前图像尺寸调整,图像越小识别速度越快,0为不调整,设置指定值将按照设置对图像最长边进行等比例调整;整数类型,默认值:0

version:指定识别系统版本;字符串类型,可选:default(标准识别版本)、beta(古籍语序优化版本),默认值:default

请求方式:

POST请求,请求体为Form Data

响应内容:

message:当前请求的状态,成功:success;失败:error

info:与message相关联,成功为空,错误时返回具体错误信息

data:数据内容

task_id:本次任务ID,后续查询任务状态、下载识别结果需要使用该ID

图像

接口四:/api/pdf_ocr_api_status PDF识别任务进度查询接口

API接口说明:

本接口使用上一个接口创建任务获取到的task_id来查询任务识别进度。

API接口地址: https://ocr.kandianguji.com/api/pdf_ocr_api_status

API Token查看:

您可以 点击此处 查看您的API Token信息

请求参数:

token:您所创建的API Token, 点此申请 必传

email:创建API Token的账号,看典古籍网站的注册账号 必传

task_id:PDF识别任务ID 必传

请求方式:

POST请求,请求体为Form Data

响应内容:

message:当前请求的状态,成功:success;失败:error

info:与message相关联,成功为空,错误时返回具体错误信息

data:数据内容

task_id:PDF识别任务ID

created_on:任务创建时间

pages:总页数

speed:识别进度

is_finish:任务是否完成

finished_on:任务完成时间(未完成为None)

code:如果任务识别完成的话返回code,在下载识别结果时使用

图像

接口五:/api/pdf_ocr_api_download/task_id-xxx PDF识别任务识别结果下载接口

API接口说明:

本接口使用PDF识别任务ID和code下载识别结果压缩包。

API接口地址: https://ocr.kandianguji.com/api/pdf_ocr_api_download/task_id-xxx

请求方式:

GET请求

请求参数:

code:接口三获取到的task_id 必传

file_type:下载识别结果文件类型;字符串类型,可选:txt(文本文件)、json(含坐标的json文件)、all(含json、txt、word、分页图像)、word(文档文档),默认值:all

响应内容:

通过GET请求下载文件即可。

图像

Python调用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import requests


def create_task(file_path, token, email):
    url = 'https://ocr.kandianguji.com/api/pdf_ocr_api'
    files = {'file': open(file_path, 'rb')}
    data = {
        'image_size': 1000,
        'det_mode': 'auto',
        'version': 'default',
        'token': token,
        'email': email
    }
    response = requests.post(url, files=files, data=data)
    print(f"状态码: {response.status_code}")
    print(f"响应内容: {response.text}")
    task_id = response.json()['data']['task_id']
    return task_id


def get_task_status(task_id):
    url = 'https://ocr.kandianguji.com/api/pdf_ocr_api_status'
    data = {
        'task_id': task_id,
        'token': token,
        'email': email
    }
    response = requests.post(url, data=data)
    print(f"状态码: {response.status_code}")
    print(f"响应内容: {response.text}")
    return response.json()['data']


def get_download_url(task_id, code):
    url = 'https://ocr.kandianguji.com/api/pdf_ocr_api_download'
    return url + f'/{task_id}?code={code}&file_type=all'

if __name__ == '__main__':
    pdf_path = r"test.pdf"
    token = 'token'
    email = '账号'
    task_id = create_task(pdf_path, token, email)
    print('task_id', task_id)
    status = get_task_status(task_id)
    # 在识别完成后获取code组合下载链接
    print(get_download_url(task_id, status['code']))

使用过程中有任何问题可以通过公众号、邮件等方式私信向我们反馈。

Loading...
Bootstrap Check Bootstrap