- 博客(110)
- 收藏
- 关注
原创 Python实战:基于OpenCV与单调栈,精准定位PDF中最大的空白区域
在日常办公自动化、RPA(机器人流程自动化)或文档处理场景中,我们经常需要处理 PDF 文件。自动在合同最后一页寻找最大空白处盖章在电子发票空白处添加水印,或者分析文档排版。想要找到 PDF 中“最大的空白矩形”,靠简单的像素遍历是非常低效的。本文将结合和OpenCV,利用经典的“单调栈算法(求最大矩形)”,实现高效且精准的 PDF 空白区域检测。
2026-10-22 12:01:12
170
原创 winuia-auto 截图全攻略(ToBitmap、Screenshot 与 CaptureToImage 详解)
在进行 Windows UI 自动化或 RPA 开发时,“截图”是一项非常高频的操作,它不仅用于生成测试报告、保存错误日志,更是实现图像识别(如图色定位、FindImageOnScreen)的核心基础。库中,截图方式丰富多样。一、 核心截图函数大盘点。
2026-10-15 18:06:33
197
原创 winuia-auto 库中窗口获取函数深度解析:GetAllTopLevelWindowInfos、GetTopLevelWindowControls 与 GetHiddenTopLevelWind
进行 Windows 自动化测试或 RPA 开发时,获取顶层窗口(Top-Level Window)是最基础也是最关键的一步。# 过滤掉了不支持 UIA 协议的窗口、转换失败的窗口。恢复显示微信隐藏的图标(非最小化)# 全量地扫描所有可见的窗口。一、 核心区别一览表。
2026-10-15 17:41:19
138
原创 winuia-auto 为uiautomation 的替代者, 使用xpath进行定位
winuia-auto 为uiautomation 的替代者。2. 使用xpath定位 - 亚马逊账号登录。提示:Ctrl + 鼠标悬停到元素上,
2026-10-07 11:31:27
44
原创 winuia-auto 操作浏览器
winuia-auto 为 uiautomation 的替代者, auto.InspectElement()支持元素查看
2026-08-07 10:36:00
288
原创 本地部署mineru-tianshu
项目链接MinerU Tianshu(天枢)是一个企业级 AI 数据预处理平台,将非结构化数据转换为 AI 可用的结构化格式:📄 文档: PDF、Word、Excel、PPT → Markdown/JSON(MinerU、PaddleOCR-VL 109+ 语言、水印去除🧪)🎬 视频: MP4、AVI、MKV → 语音转写 + 关键帧 OCR🧪(FFmpeg + SenseVoice)🎙️ 音频: MP3、WAV、M4A → 文字转写 + 说话人识别(SenseVoice 多语言)
2026-01-05 18:15:00
1479
1
原创 windows10 安装 WSL2 及 ubuntu 24.04,Ubuntu中安装CUDA
复制出来的链接为 http://tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/f8e26723-41b2-4117-9296-2410e88dd677?将下载的后缀为AppxBundle的文件进行解压,电脑是ARM架构则选择Ubuntu_2404.1.26.0_ARM64.appx进行解压,这里使用Ubuntu_2404.1.26.0_x64.appx再次解压。在使用夜神模拟器时,与这三项冲突,关掉这三项,使用ububtu时再开启。
2025-10-17 14:17:13
2152
原创 在windows 的子系统Ubuntu部署qanything-v2
4. 修改配置文件 /home/qanything/qanything_kernel/configs/model_config.py 和 /home/qanything/docker-compose-linux.yaml。如果docker compose -f docker-compose-linux.yaml logs -f qanything_local 显示连接报错,参考 https://blog.youkuaiyun.com/sgx1825192/article/details/146965328。
2025-09-30 17:18:34
1019
原创 Error loading “D:\env\paddleocr_env\.venv\lib\site-packages\torch\lib\fbgemm.dll“
Error loading "D:\env\text_recognition\text_recognition\.venv\lib\site-packages\torch\lib\shm.dll" or one of its dependencies.问题1:Error loading "D:\env\paddleocr_env\.venv\lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.print("CUDA环境正常!
2025-08-13 10:43:14
826
1
原创 飞浆 paddleocr 识别图片上文字的角度
1. 识别角度,飞浆无法接收路径中带有中文的图片,所以将图片转np.array格式传进去。2. 修正角度 可以接收图片或者pdf文件。
2025-08-06 16:33:40
289
原创 windows 有多个python版本时,Trae-CN IDE 切换 python版本
2. 点击下方的 Python: Select Interpreter, 再点击Enter interpreter path, 再输入框输入 D:\env\text_recognition\.venv\Scripts\python.exe,回车。1. 配置 Trae 解释器:按下 Ctrl+Shift+P 打开命令面板,输入 Python: Select Interpreter。
2025-08-06 16:08:57
1116
原创 js 表单提交时 给 input 赋值与手动输入的区别
例如,使用 input.value = '新值' 将不会触发 input 或 change 事件。当用户在输入框中输入内容时,会触发一些特定的事件,例如 input、change 和 keydown 等事件。在 JavaScript 中,给 元素赋值与用户手动输入之间存在一些关键的区别,尤其是在事件触发、表单提交和元素状态方面。// 通过 JavaScript 赋值并触发事件。// 创建并触发 change 事件。// 创建并触发 input 事件。// 监听 input 事件。
2024-10-23 10:22:49
781
原创 tkinter Listbox 列表框实现多列对齐排列并绑定下拉框和滚动条
【代码】tkinter Listbox 列表框实现多列对齐排列并绑定下拉框和滚动条。
2024-10-18 10:56:21
805
原创 nodriver 切换普通的iframe和隐藏的iframe
nodriver 在切换到隐藏的iframe是有些麻烦的,并不能直接搜索到iframe。
2024-08-06 16:53:13
575
原创 新的自动化工具 nodriver的使用
不再有 webdriver,不再有 selenium,没有 chromedriver 二进制文件或 Selenium 依赖项。和pyppeteer 类似,异步执行,不过nodriver规避了检测,nodriver 只执行css,不能执行xpath。Undetected-Chromedriver python 包 的官方后继者。
2024-08-06 16:35:44
3080
原创 pyinstaller [13440] Failed to execute script ‘pyi_rth_multiprocessing‘ due to unhandled exception
在打包时加--hiddenimport=_socket。pyinstaller 打包程序报。
2024-07-30 17:31:02
647
原创 SMS-Activate 接码
api = SMSActivateAPI('密匙')if count >= 24:#循序查询2分钟。api = SMSActivateAPI('密匙')api = SMSActivateAPI('密匙')# STATUS_WAIT_CODE - 等待短信。# 取消号码 返回 ACCESS_CANCEL。try:# go接码谷歌邮箱 0表示俄罗斯。2. 查看所需服务的代码符号,点击见表。5. 2分钟未收到短信码则取消手机号。查看国家代码符号点击见表。
2024-07-26 18:18:05
5918
2
原创 js 请求blob:https:// 图片
方式164>c;for(c=0;t-t%3>c;xhr.send();""", uri)方式2xhr.send();});if(img){}else{
2024-07-12 19:05:03
1636
原创 undetected_chromedriver 控制已打开的浏览器
undetected_chromedriver 通过端口控制已打开的浏览器时,会打开一个多余的空白窗口,鼠标放在Chrome() 按ctrl+B查看源码,找到。
2024-06-20 11:27:05
1321
原创 python 打开文件窗口和另存为文件窗口,win32con,win32gui
【代码】python 打开文件窗口和另存为文件窗口,win32con,win32gui。
2024-06-12 10:33:42
673
原创 python 读取csv报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x87 in position 0: invalid start
pandas 和 csv 读取失败,一种方法是手动另存为时改变编码,以下是代码读取,可以使用https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js 在浏览器上读取,nodejs需要安装两个库 npm install express xlsx express-fileupload -g。2. nodejs 写一个服务,python调用接口。python接口调用。
2024-03-20 23:15:10
916
原创 pyqt5 QWebEngineView 重写mousepressevent捕获鼠标点击事件,无响应
QWebEngineView 加载网页后,重写mousepressevent捕获鼠标点击事件,无响应原因是。QWebEngineView在加载界面后,被本身的child接收了该事件,解决办法:同过重载event,截取QEvent::ChildAdded事件。
2024-03-04 19:23:33
1237
原创 python 调用SumatraPDF 静默打印PDF
⽆边框 noscale/缩⼩到合适⼤⼩(默认)shrink/合适⼤⼩ fit/compat 兼容。# 分为 Portrait (纵向)和 Landscape (横向)两类。SumatraPDF 文档。
2024-01-26 10:36:55
3312
8
原创 pypdf 将 PDF两个页面拼接成一个页面进一步详解
pypdf 将两个PDF页面在x轴,y轴进行平移调整位置之后,直接用merge_page拼接在一起,或者PageObject.create_blank_page 先创建一个空白页面,再将两个页面添加到空白页面上,2. 当 left和buttom都不为0,即RectangleObject([91.841, 38.5506, 261.791, 95.1271])方法2调整之后的效果 和left 和buttom 都为0时用方法1拼接发效果一样。小日子的两个案例,拼接在右侧。用上面方法拼接出来的效果,
2024-01-05 17:09:33
2534
原创 selenium 自动下载120版本以上的chromedriver最新版本
【代码】selenium 自动下载118版本以上的chromedriver驱动。
2024-01-05 15:13:27
1870
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅