命令行调用入口就是主程序 Umi-OCR.exe
。如果你使用的是备用启动器(如UmiOCR-data/RUN_GUI.bat
),可能无法使用命令行。
如上图,必须允许HTTP服务才能使用命令行(默认开启)。主机选择 仅本地 就行了。
Umi-OCR 依赖HTTP接口进行跨进程通信,将你输入的命令行指令传递给后台的Umi-OCR处理进程。通信过程仅在系统内部的本地环回进行,不会泄露到外部(不经过物理网卡),请放心使用。
获取说明:umi-ocr --help
弹出主窗口:umi-ocr --show
隐藏主窗口:umi-ocr --hide
关闭软件:umi-ocr --quit
鼠标截屏:umi-ocr --screenshot
范围截屏 指令:
umi-ocr --screenshot screen=0 rect=x,y,w,h
范围截屏控制参数:
screen
: 要截图的显示器编号(多个显示器时有效),从0开始。缺省为0。rect
: 截图范围矩形框,x坐标,y坐标,w宽度,h高度
。缺省为全屏。注意:
--
。示例1:截取第1个显示器的全屏
umi-ocr --screenshot screen=0
示例2:截取第2个显示器,从左上角 (50,100) 开始,大小为 300x200 的矩形区域
umi-ocr --screenshot screen=1 rect=50,100,300,200
示例3:与 HotkeysCMD 工具配合,实现点击 快捷键 进行范围截图。
向 HotkeysCMD 的配置文件中添加这一行,表示点击 F10
时进行范围截图:
F10 umi-ocr --screenshot screen=0 rect=50,100,300,200
更多快捷键定义方式,详见 HotkeysCMD 文档。
粘贴图片:umi-ocr --clipboard
指定路径:umi-ocr --path "D:/xxx.png"
""
包裹单个路径,不同路径间用空格
隔开。指定多个路径 示例:umi-ocr --path "D:/img1.png" "D:/img2.png" "D:/image/test"
提示:
截图OCR
标签页的设定。如果不希望命令行任务弹出主窗口,请在截图OCR
标签页中关闭该选项。识别二维码:umi-ocr --qrcode_read "D:/xxx.png"
生成二维码:umi-ocr --qrcode_create "文本内容" "D:/输出图片.jpeg"
例,同时指定宽高为128像素:umi-ocr --qrcode_create "文本内容" "D:/输出图片.jpeg" 128
例,宽128,高256像素:umi-ocr --qrcode_create "文本内容" "D:/输出图片.jpeg" 128 256
--screenshot
、--clipboard
可以分别简写为--sc
、--clipbo
。具体可自己尝试。.exe
来调用程序。即 umi-ocr --sc
等价于 Umi-OCR.exe --sc
。 --clip
--output "file.txt"
--output_append "file.txt"
也可以使用箭头符号:
"-->"
等价于 --output
"-->>"
等价于 --output_append
例:
umi-ocr --screenshot --clip
umi-ocr --screenshot --output test.txt
umi-ocr --screenshot "-->" test.txt
注:由于运行环境的一些限制,Umi-OCR 暂时无法重定向输出流,系统管道重定向符
>
、管道操作符|
可能失效。
如果需要用程序 调用命令行指令,但是发现无法收到回传,可使用 HTTP转发命令行 代替。
(仅供有经验的开发者使用)
高级指令代表了一种无限的可能性(笑),允许通过命令行调用任意标签页(模块)上的任意函数。但是用法比较复杂,你需要在一定程度上阅读本项目源码才能知道该调用哪个函数、传入什么参数。
“页面模板”相当于收藏夹,可以从收藏夹中打开一个新页面。
“已打开的页面”可以关闭。
查询当前已打开的页面,及所有页面模板:可以获取 [index]
umi-ocr --all_pages
创建新标签页:[index] 为页面模板序号
umi-ocr --add_page [index]
删除已创建的标签页:[index] 为现有页面序号
umi-ocr --del_page [index]
每个标签页,通常会具有两个模块,一个是py,一个是qml。还可能会有一些不依附于标签页的独立py或qml模块。
每个模块上都有一些函数可以被调用。 模块名 [name] 允许简写,如一个模块全称是 "ScreenshotOCR_1" ,那么可用 "ScreenshotOCR" 来代替。
每次程序运行,模块名(的后缀)不一定相同。请使用简写来忽略后缀。
查询当前存在的py和qml模块:可获取 [name]
umi-ocr --all_modules
查询某个py模块上有什么可调用的函数: [name] 为模块名
umi-ocr --call_py [name]
查询某个qml模块上有什么可调用的函数: [name] 为模块名
umi-ocr --call_qml [name]
调用py模块上的函数:
int
、float
、list
、dict
。umi-ocr --call_py [name] --func [function] [..paras]
调用qml模块上的函数:
umi-ocr --call_qml [name] --func [function] [..paras]
示例,调用二维码页qml模块的路径扫码函数,传入路径列表:
umi-ocr --call_qml QRCode --func scanPaths '[\"D:/Pictures/Screenshots/test/二维码/1111.png\",\"D:/Pictures/Screenshots/test/二维码/2222.png\"]'
命令行解析器运行在子线程。为了确保线程安全,默认转到主线程执行命令。所以对于你来说就是异步执行的了,即无法取得函数的返回值。
如果要获取函数返回值,可传入 --thread 指令,同步执行命令。
这种操作较不安全,可能导致功能不正常甚至程序崩溃。
umi-ocr --call_qml [name] --func [function] --thread [..paras]
示例目标:将一些PDF文档添加到软件,生成双层可搜索PDF。
做法:
批量文档
标签页,那么打开它:umi-ocr --all_pages
BatchDOC
标签页的 template_index
为3
。创建该标签页:umi-ocr --add_page 3
BatchDOC
模块是否已存在:umi-ocr --all_modules
Qml modules
中,已存在 BatchDOC_1
,那么就是正确的。C:\Users\My\Desktop\111.epub
C:\Users\My\Desktop\222.pdf
\
需要改为/
)umi-ocr --call_qml BatchDOC --func addDocs '[ \"C:/Users/My/Desktop/111.epub\", \"C:/Users/My/Desktop/222.pdf\"]'
关于addDocs
后面路径参数的格式:
'
,且左双引号前面必须有空格。即:'[■\"path_1\",■\"path_2\",■\"path_3\"]'
(将■
替换为空格
)。单个路径为'[■\"路径1\"]'
。"
。即:"[\"path_1\",\"path_2\",\"path_3\"]"
。umi-ocr --call_qml BatchDOC --func docStart
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。