ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Zerox OCR 实战指南:把 PDF、发票和扫描件一键变成 Markdown

Zerox OCR 实战指南:把 PDF、发票和扫描件一键变成 Markdown Zerox OCR 实战指南把 PDF、发票和扫描件一键变成 Markdown【免费下载链接】zeroxOCR Document Extraction using vision models项目地址: https://gitcode.com/GitHub_Trending/ze/zerox整理收件资料时我手头堆着一沓扫描版发票和几份合同 PDF——表格密、字号小连全文检索都做不到。Zerox 就是为这类场景准备的文档 OCR 工具它把每一页转成图片交给视觉模型vision model直接输出保留表格、标题和排版结构的结构化 Markdown。项目定位一条“文件 → 图片 → Markdown”的 OCR 流水线Zerox 是开源的 OCR Document Extraction SDKNode 端是 npm 包zeroxPython 端是py-zerox都支持 OpenAI、Azure、AWS Bedrock、Google Gemini 等多家视觉模型。处理逻辑简单直接传入一个文件PDF、图片、DOCX、XLSX 等→ 转成一系列页面图片 → 每张图交给视觉模型要 Markdown → 汇总结果返回。和传统 OCR 按区域切分文字不同Zerox 把整页画面交给模型“看懂”版面所以表格和多栏文本不会被读成一团乱码。 快速上手一次调用把扫描件转成 Markdown先装 Node SDKPDF 转图依赖 graphicsmagickLinux 可用 apt 安装npm install zerox然后一次调用import { zerox } from zerox; // 传入受支持的文件PDF、图片、DOCX、XLSX 都可以 const result await zerox({ filePath: shared/inputs/0020.png, credentials: { apiKey: process.env.OPENAI_API_KEY }, outputDir: ./output, // 把汇总后的 Markdown 落盘 }); console.log(result.pages[0].content); // 第一页的 Markdown只需一个 API Key默认走 OpenAI GPT-4o换 Claude、Gemini 或 Azure OpenAI 只改 provider 和 model 参数。Python 侧pip install py-zerox后异步调用pyzerox.zerox(file_path..., model..., output_dir...)返回同样包含 Markdown 与逐页元数据。 效果展示一张发票 OCR 之后长什么样拿仓库测试数据里这张物流发票扫描件试试对应的输出文件 shared/outputs/0020.md 里原图的两个运单段落被完整保留Waybill No: 012345A| Description | Qty | Dimensions | | 4321-A1 XL Custom Supreme Light Stand Up | 150 | 13 x 18 x 3 |标题、货物明细、费用金额都变成了标准 Markdown 表格数字分毫不差可以直接喂给记账脚本。更复杂的版面可以看官方示例图——左侧是原始页面表格 代码块右侧是转换出的带行号文本✨ 技术亮点整份文件转成图片让视觉模型“看懂”表格DOCX、XLSX、PPTX 这类非图片文件会先经 LibreOffice 转成 PDF再渲染成页面图片Node 端用 graphicsmagickPython 端需要 popplerDPI 与图片高度可用imageDensity、imageHeight调节。核心识别步骤在图片处理模块每页图片配上系统提示词发给视觉模型由模型负责还原版面、表格和代码块。自动识别并纠正页面方向收据照片经常拍歪。Zerox 默认correctOrientation: true用 Tesseract 的 OSD 模式先检测页面方向再纠正随后trimEdges裁掉四周边缘背景。测试数据里这张 Walmart 小票就是斜着 90° 拍的依然能正常处理用 schema 只抽结构化字段不想要整页文字、只要发票号、税额和开票日期时在 Node SDK 里设extractOnly: true并传入 JSON Schema拿回的是结构化 JSON 而非整页 Markdown还能用extractPerPage按页抽取或用extractionModel给抽取环节单独指定更便宜的模型。进阶玩法批量处理与多模型切换concurrency控制页面级并发默认 10pagesToConvertAsImages/select_pages可以只处理指定页。表格跨页时打开maintainFormat它会把上一页的 Markdown 作为上下文喂给模型牺牲一点速度换表格结构的连贯。批量场景下循环遍历目录加outputDir就能把一整批文档落成各自的 Markdown。OpenAI / Azure / Bedrock / Google 四家 provider 的完整样例在 examples/node/openai.ts 里。想持续回归识别质量仓库内置了关键词校验测试集预期关键词在 shared/test.jsonnpm run test即可运行。适合谁用搭 RAG 管线的团队文档要进向量库卡在“扫描件 → 文本”第一步财务、行政岗位发票、合同、收据批量归档需要抽出金额、日期、发票号等结构化字段数字化场景把扫描资料单位档案、个人学习笔记转成可检索、可编辑的 Markdown小结Zerox 把“扫描 → 文字 → 结构化”整条链路压缩成一次 API 调用产物是可以直接使用的 Markdown而不是还要二次排版的字符串。入口从 README 开始内部流程可以读 Python SDK 核心实现 对照理解。手头有扫描件积压的话不妨先用 Zerox 转两三份看看 Markdown 产出效果比任何介绍都直观。【免费下载链接】zeroxOCR Document Extraction using vision models项目地址: https://gitcode.com/GitHub_Trending/ze/zerox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表