https://github.com/run-llama/liteparse
上周我在处理一个数据提取项目,需要从几百份 PDF 合同里抽取条款信息。试了 PyPDF2,格式乱七八糟;试了 pdfplumber,遇到扫描件就歇菜;试了某个商业 API,价格直接劝退。后来在 LlamaIndex 的 GitHub 组织里发现了 LiteParse,一行 pip install 装上,跑了一下手头最难的那份合同,输出居然保留了段落位置和字体信息。
LiteParse 是 LlamaIndex 团队做的开源 PDF 解析工具。核心卖点就一个字:快。它用 Rust 写的底层解析引擎,通过 napi-rs 和 PyO3 绑定到 Node.js 和 Python,所以你用起来跟普通 Python 库没区别,但性能是原生级别的。我测了一下,一份 50 页的 PDF,PyPDF2 需要 8 秒,LiteParse 只要 1.2 秒。
为什么我会注意到它?因为它的定位很清晰:不做万能工具,只做”快和轻”的本地解析。现在很多 PDF 解析方案要么依赖云端 API(贵),要么依赖大型 LLM(慢),LiteParse 走的是纯本地路线,OCR 用 Tesseract,零配置就能跑。对于我这种经常需要离线处理文档的场景,这点特别重要。

实际装上之后,我花了大概 10 分钟测试各种场景。最让我惊喜的是它的 JSON 输出格式,每个文本块都带有精确的坐标信息(x, y, width, height),还有字体名称和大小。这意味着我可以根据位置关系来重建文档结构,而不是只拿到一坨纯文本。另外它还支持截图功能,直接把 PDF 页面渲染成 PNG,这对 LLM agent 场景很有用,因为有些图表信息纯文本根本提取不出来。

和其他工具比,LiteParse 的优势在于它不试图做太多。PyPDF2 功能全但慢,pdfplumber 灵活但依赖多,Marker 需要 GPU。LiteParse 就专注做好一件事:快速、准确地提取文本和位置信息。它甚至支持 WASM,理论上可以在浏览器里跑,虽然我还没试过这个场景。
缺点也有。OCR 部分需要自己安装 Tesseract 数据文件,默认情况下如果系统没有 tessdata 会报错。另外它目前不支持复杂的表格解析,遇到多列布局或者嵌套表格,输出可能会有点乱。不过对于大多数日常文档处理场景,这些都不是大问题。
适合谁?如果你经常需要批量处理 PDF 文档,特别是需要精确位置信息的场景(比如数据提取、文档比对),LiteParse 值得试试。如果你需要处理扫描件或者复杂表格,可能还是得搭配其他工具。如果你只是偶尔解析一两份 PDF,PyPDF2 可能就够了。
安装难度很低,pip install liteparse 就完事。推荐指数 4/5,扣的一分是因为 OCR 配置稍微有点麻烦。
安装难度: 简单,pip 一键安装 推荐指数: 4/5,特别适合批量文档处理场景