Closed Mingxiangyu closed 6 months ago
好的好的,感谢解惑,主要之前没用过qml,项目没跑起来
---- 回复的原邮件 ---- | 发件人 | @.> | | 发送日期 | 2024年02月22日 20:27 | | 收件人 | hiroi-sora/Umi-OCR @.> | | 抄送人 | Mingxiangyu @.>, Author @.> | | 主题 | Re: [hiroi-sora/Umi-OCR] 添加pdf解析http接口 (PR #363) |
我建议一步一步来,先将文档识别的同步接口写出来,然后写命令行识别本地文件的接口,最后在基础上再写HTTP接口。
之前忘了说,文档识别任务流程代码(mission_doc.py)缺少一个同步接口。
阅读一下UmiOCR-data\py_src\mission\mission.py和UmiOCR-data\py_src\mission\mission_ocr.py,你会发现,任务管理器基类提供了一个异步的接口addMissionList和同步接口addMissionWait。如果在Umi前端调用,则应该调用异步接口。如果通过命令行等接口调用,则应该调用同步接口。
mission_ocr.py 继承了任务管理器基类,能正常使用同步和异步接口。但 mission_doc.py 的文档流程有一定特殊性,所以只有异步接口 addMission ,没有同步接口。
所以,如果要写命令行/HTTP,则最初的一步要在 mission_doc.py 中补一个同步接口,类似:
# 1. 用一个变量 resPages 来缓存每一页的识别结果 。# 2. 创建一些回调函数 _onGet、_onEnd ,与argd一起封装为msnInfo 。# 3. 调用异步接口 self.addMission 启动任务。然后立刻 condition.wait() 阻塞线程。# 4. 在回调 _onGet 中,将获取的本页结果存入 resPages 。# 5. 在回调 _onEnd 中,condition.notify() 释放线程阻塞。# 6. 将结果 resPages 返回给调用方。# ex1. 如果需要 tbpu ,则需要在开始时初始化tbpu实例,在回调函数中调用实例。# ex2. 如果需要保存为双层PDF等格式,则需要在开始时初始化 output 实例,在回调函数中调用实例。
可参考这样地方: UmiOCR-data\py_src\mission\mission.py def addMissionWait UmiOCR-data\py_src\tag_pages\BatchDOC.py def msnDocs
你可以按照上述思路尝试一下,如果有什么参数不明白,可找到项目中已有的类似代码print一下看看。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
我建议一步一步来,先将文档识别的同步接口写出来,然后写命令行识别本地文件的接口,最后在基础上再写HTTP接口。
之前忘了说,文档识别任务流程代码(mission_doc.py)缺少一个同步接口。
阅读一下
UmiOCR-data\py_src\mission\mission.py
和UmiOCR-data\py_src\mission\mission_ocr.py
,你会发现,任务管理器基类提供了一个异步的接口addMissionList
和同步接口addMissionWait
。如果在Umi前端调用,则应该调用异步接口。如果通过命令行等接口调用,则应该调用同步接口。mission_ocr.py 继承了任务管理器基类,能正常使用同步和异步接口。但 mission_doc.py 的文档流程有一定特殊性,所以只有异步接口
addMission
,没有同步接口。所以,如果要写命令行/HTTP,则最初的一步要在 mission_doc.py 中补一个同步接口,类似:
可参考这样地方: UmiOCR-data\py_src\mission\mission.py
def addMissionWait
UmiOCR-data\py_src\tag_pages\BatchDOC.pydef msnDocs
你可以按照上述思路尝试一下,如果有什么参数不明白,可找到项目中已有的类似代码print一下看看。