一款OCR神器,5.6K Star,支持20多种文档格式,一键转换成markdown
2025-03-20 15:32:33 作者: 匿名 浏览量:7次
来源:江南一点雨
一 Zerox OCR
二 支持的文档格式
三 实践
不知道各位小伙伴平时工作中有没有一些将别的格式的文档转为 Markdown 的需求?
最近发现了一个好玩的开源项目,能够帮我们把二十多种不同格式的文章利用 AI 转为 markdown,非常好用。
一 Zerox OCR
Zerox OCR 是一个基于 GPT 技术的 OCR 工具,它能够将 PDF、DOCX 等文件转换为 Markdown 格式。
相比于传统的 OCR 工具,Zerox OCR 有很多不一样的地方,具体体现在:
零配置:Zerox OCR 的一个显著特点是它的零配置特性,用户只需提供文件和 API token,即可轻松实现文本提取,省去了繁琐的参数设置。
高精度识别:Zerox OCR 使用 GPT-4o-mini 模型进行文本识别,能够处理完全陌生的 PDF、图片等文档类型,不需要事先训练数据,即可提供高精度的 OCR 结果。
Markdown 输出格式:在 OCR 转换过程中,Zerox 将每个识别的页面转化为简洁的 Markdown 格式,方便对文本进行后期处理和整理。
支持复杂文档:Zerox 不仅可以处理简单的文本,还能够处理包含表格、图表等复杂布局的文件。无论是扫描版 PDF 还是其他格式,Zerox 都可以对它们进行 OCR 识别,生成准确的文本内容。
本地运行与 API 支持:Zerox 支持本地运行,无需担心隐私泄露问题。此外,它还提供了 API 接口,方便集成到应用中,提升业务流程的自动化和效率。
开源项目:Zerox 是一个开源项目,使用 MIT 许可证,用户可以免费使用其核心功能。
Zerox OCR 以其高效准确、易用性和广泛的应用前景,成为了文档处理和数据提取领域的一个重要工具。开发者和用户可以通过访问 Zerox 的 GitHub 页面来体验这款 OCR 神器,开启高效文本提取之旅。
二 支持的文档格式
那么这个开源工具到底都支持哪些不同格式的文档呢?
我们来看下官方给的这个支持的文档列表:
[
"pdf", // Portable Document Format
"doc", // Microsoft Word 97-2003
"docx", // Microsoft Word 2007-2019
"odt", // OpenDocument Text
"ott", // OpenDocument Text Template
"rtf", // Rich Text Format
"txt", // Plain Text
"html", // HTML Document
"htm", // HTML Document (alternative extension)
"xml", // XML Document
"wps", // Microsoft Works Word Processor
"wpd", // WordPerfect Document
"xls", // Microsoft Excel 97-2003
"xlsx", // Microsoft Excel 2007-2019
"ods", // OpenDocument Spreadsheet
"ots", // OpenDocument Spreadsheet Template
"csv", // Comma-Separated Values
"tsv", // Tab-Separated Values
"ppt", // Microsoft PowerPoint 97-2003
"pptx", // Microsoft PowerPoint 2007-2019
"odp", // OpenDocument Presentation
"otp", // OpenDocument Presentation Template
]
可以看到,主流的文档格式都是支持的。
三 实践
最后我们再来看下这个工具该如何使用。
首先来安装:
npm install zerox
Zerox 使用 graphicsmagick 和 ghostscript 进行 PDF 到图像的转换。这些工具应会自动下载,但有时需要手动安装。
手动安装命令如下:
sudo apt-get update
sudo apt-get install -y graphicsmagick
装好之后就可以使用了,使用的时候可以使用一个在线的文件路径:
import { zerox } from "zerox";
const result = await zerox({
filePath: "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf",
openaiAPIKey: process.env.OPENAI_API_KEY,
});
如果是本地文件则通过如下方式来解析:
import path from "path";
import { zerox } from "zerox";
const result = await zerox({
filePath: path.resolve(__dirname, "./cs101.pdf"),
openaiAPIKey: process.env.OPENAI_API_KEY,
});
最终解析结果类似下面这样:
{
completionTime: 10038,
fileName: "invoice_36258",
inputTokens: 25543,
outputTokens: 210,
pages: [
{
content: "# INVOICE # 36258" +
"**Date:** Mar 06 2012 " +
"**Ship Mode:** First Class " +
"**Balance Due:** $50.10 " +
"## Bill To:" +
"Aaron Bergman " +
"98103, Seattle, " +
"Washington, United States " +
"## Ship To:" +
"Aaron Bergman " +
"98103, Seattle, " +
"Washington, United States " +
"" +
"| Item | Quantity | Rate | Amount |" +
"|--------------------------------------------|----------|--------|---------|" +
"| Global Push Button Manager"s Chair, Indigo | 1 | $48.71 | $48.71 |" +
"| Chairs, Furniture, FUR-CH-4421 | | | |" +
"" +
"**Subtotal:** $48.71 " +
"**Discount (20%):** $9.74 " +
"**Shipping:** $11.13 " +
"**Total:** $50.10 " +
"---" +
"**Notes:** " +
"Thanks for your business! " +
"**Terms:** " +
"Order ID : CA-2012-AB10015140-40974 ",
page: 1,
contentLength: 747
}
]
}
这个用法是不是非常 Easy,如果小伙伴看过松哥的 vhr 或者 tienchin,对 Vue 的使用有基本的了解,那么上面这段代码可就太好明白了。
好啦,更多功能小伙伴们可以查看 Zerox 官方文档,这里就不啰嗦了。