简介: 我工作接触 PDF 文档较多,很多 PDF 文档由图片组成的,不能够复制文字?要是有一个程序能够快速获取文本的软件就好了。
如何响应截图
初步想法 : 之前学过MFC编程,首先想到的是,通过 hook 方式,拦截鼠标键盘消息,根据按键截取屏幕区域的图片。
Python 具有丰富的库,要想实现实现 hook 分分钟的事,pyHook
模块是网上使用最多的。当运行时,其库很快就崩溃了, 其对 py3支持很不友好,短时间内没办法修复。放弃使用该方式。
很好,不能被动等待鼠标和键盘消息,主动查询方式岂不是更快。需要安装 pywin32 模块: pywin32-224-cp36-cp36m-win_amd64.whl
,使用封装 windows API.
只需要获取键盘Ctrl键和鼠标左键状态(抬起与按下状态)
from win32 import win32api
helper_key_status = 0x8000 & win32api.GetKeyState(VK_CONTROL)
button_status = 0x8000 & win32api.GetKeyState(VK_LBUTTON)
通过一个线程主动查询,间隔 0.001 秒, 第一次点击记录左上角的点位置,第二次点击记录右下角点位置。
获取鼠标点位置:
x, y = win32api.GetCursorPos()
截取图片
最常用的是 pillow 模块,需要 pip install pillow
from PIL import ImageGrab
img = ImageGrab.grab((point1.x, point1.y, point2