【【标签】
学习工作
【标题】
【学习工作赛道】图片 SKU 识别批量打印助手
【正文】
0. 先和大家打个招呼吧 
你是谁: 一名日常和仓储盘点、进货对账打交道的打工人,平时最大的乐趣就是用工具把重复机械的活儿自动化掉。
你是怎么用 TRAE 把 Demo 做出来的: 一开始脑子里只有一个模糊的想法——“对着手机照片手抄 SKU 太痛苦了,能不能拍个照就自动识别打印”。我把这个想法一句句讲给 TRAE 听,它先帮我理清了整条链路:拍照 → OCR 识别 → 编辑纠错 → 套模板 → 静默打印。
最让我觉得"原来这么简单"的瞬间,是当我以为"浏览器没法控制打印机"这个坎跨不过去时,TRAE 主动提出了全栈方案:前端做 OCR 和编辑,后端用 Python 调系统打印接口静默出纸。我原以为要学很久的跨平台打印调用,它直接帮我写好了 Windows 用 Excel COM、macOS 用 PDF+lp 命令的两套实现。整个过程像在和一个懂业务的搭档结对编程,我只要把场景讲清楚,它就能把技术细节落地。
1. Demo 简介
是什么: 一个本地运行的 Web 应用(前端 HTML + Python FastAPI 后端),拍照上传即可自动识别图片中的 SKU 编码与数量,在线编辑后一键静默批量打印。
面向谁: 电商仓储管理员、线下门店收银盘点人员、小型批发进货文员、电商订单打包工作人员。
主要功能:
- 图片 OCR 智能识别 :支持拖拽上传、点击上传、Ctrl+V 粘贴图片,本地 Tesseract.js 引擎离线识别,自动提取 SKU 编码与对应数量。
- 可视化编辑纠错 :识别结果以表格呈现,可逐条修改 SKU、调整数量、增删行,实时校验并显示合计份数。
- 一键静默打印 :选择打印机后点击「立即打印」,后端自动填充 sku.xlsx 模板并静默打印,无需手动导出或运行脚本,跨平台支持(Windows / macOS)。
(建议在此插入 3 张产品截图:① 上传图片+OCR 识别界面;② 编辑清单界面;③ 打印控制面板+日志界面
2. Demo 创作思路
灵感来源: 日常仓储对账、进货盘点时,需要对着供货单照片、手写进货单据图片逐条抄写 SKU 和数量再录入 Excel 打印。单号多的时候极易漏输、错填,排版打印还要反复调格式,多批次单据处理耗费大量人工时间,由此萌生自动化识别打印工具的想法。
想解决的问题: 手工摘抄单据图片里的 SKU 编码与货品数量易抄错、录入慢;手动排版打印单据流程繁琐耗时;每次换模板都要重新设置。
为什么做这个方向: 这是真实存在于工作场景的高频痛点。OCR 识别 + 模板打印的组合,能把单份单据处理时间从十分钟压缩到几十秒。相比做一个"通用 OCR 工具",我选择聚焦"仓储单据打印"这个具体场景,把识别、编辑、打印串成一条最短路径,让工具真正能落地用起来。
3. Demo 体验地址
本项目为本地运行的全栈应用(含跨平台静默打印,需连接实体打印机),采用 交互式可体验的 HTML 格式文件,Zip 打包上传到社区 。
autoPrint.zip (72.9 KB)
打包内容包含:
- index.html —— 前端界面(OCR + 编辑 + 打印控制)
- server.py —— FastAPI 后端服务
- printer.py —— 跨平台静默打印模块
- sku.xlsx —— 打印模板
- tesseract.min.js —— 本地 OCR 引擎
- requirements.txt —— Python 依赖
- README —— 启动说明( pip install -r requirements.txt → python server.py → 浏览器访问 http://localhost:9527 )
4. TRAE 实践过程
-
完整开发流程:
-
需求澄清与方案设计 和 TRAE 对齐核心诉求:拍照 → 识别 → 编辑 → 打印,全程一个界面完成。TRAE 帮我梳理出"前端 OCR + 后端静默打印"的全栈架构,并确认必须复用现有的 sku.xlsx 模板。
-
前端界面与 OCR 集成 用 TRAE 基于现有 index.html 风格搭建工作台:左栏图片上传、中栏 OCR 结果与 SKU 编辑表、右栏打印清单。集成 Tesseract.js v5 本地离线 OCR,解决 CDN 加载不稳定问题——下载 tesseract.min.js 到本地引用,并写异步兜底加载器。
-
跨平台静默打印后端 这是整个项目的核心难点。我提出"浏览器没法直接控制打印机",TRAE 立刻调整为后端打印方案:
- 创建 printer.py :Windows 用 openpyxl 填充模板 + win32com Excel COM 静默打印;macOS 用 openpyxl 读模板格式 + fpdf2 生成匹配尺寸 PDF + lp 命令静默打印。
- 创建 server.py :FastAPI 提供 /api/printers (列出打印机)、 /api/print (静默打印)、 /api/template (模板状态)接口。
-
联调与问题排查
- 修复 macOS lpstat -p 中文环境输出解析失败问题,改用 lpstat -e 只输出打印机名称。
- 修复 tesseract.min.js 在 FastAPI 下的静态文件路由,改用 /static/ 挂载。
- 验证 PDF 生成逻辑与打印机列表获取均正常。
-
发关键步骤截图:
-
-
说明工作流,让ai了解我的需求 ;id: .2855866813385738:3eea94143cda956c1ae21e03ca93034f_6a578a62cd3cb729305cdbd5.6a578b93cd3cb729305cdbd7.6a578b926d8dbc44a40ae62f:Trae CN.T(2026/7/15 21:30:59)
- 指出浏览器无法控制打印机打印,让ai帮忙解决。id:.2855866813385738:0576255b660cb7b8bd4a401e653da6cb_6a578a62cd3cb729305cdbd5.6a579be5cd3cb729305cdd44.6a579be46d8dbc44a40ae630:Trae CN.T(2026/7/15 22:40:37)
- TRAE 设计跨平台打印架构并且纠正需求的对话截图 id: .2855866813385738:6c8e6375f80f6ac5b9bddd580f272a44_6a578a62cd3cb729305cdbd5.6a579e41cd3cb729305cde06.6a579e416d8dbc44a40ae631:Trae CN.T(2026/7/15 22:50:41)
- 前端打印控制面板(打印机下拉 + 静默打印按钮 + 实时日志)界面截图
- 后端 /api/printers 正确返回两台打印机的运行截图
5. 对应的报名审核通过的帖子链接




