你是不是也经常被PDF折磨?想提取文字,格式乱成一锅粥;想搞表格,结果全变成一堆坐标;想跑个OCR,还得搭一圈云服务。最烦的是,一个PDF解析工具动不动就让你联网、传数据,隐私和速度都没保障。
今天分享一个完全本地运行的开源工具——LiteParse。它主打轻量和快速,没有那些花里胡哨的LLM依赖,也不需要联网。你的PDF文件永远待在你自己的电脑上。
LiteParse 是干啥的?
一句话:把PDF里的文字和位置信息干净地挖出来。底层用 PDFium 做空间文本解析,速度很快自带 边界框(bounding box),每个字在哪个位置都给你标清楚内置 Tesseract OCR,开箱即用,也可以换成 EasyOCR、PaddleOCR 或者你自己搭的OCR服务器能生成 高清页面截图,给LLM代理看布局特别有用输出格式支持 JSON 和纯文本语言绑定很全:Rust、Node.js、Python、浏览器(WASM)都能用跨平台:Linux、macOS(Intel/ARM)、Windows 都行
image.png
如果你遇到特别复杂的文档——比如那种表格套表格、多栏乱飞、手写文字、扫描版老书,LiteParse 本地的解析能力可能就有点吃力了。这时候可以试试它们家的 LlamaParse,一个云端文档解析器,专门处理这种脏活累活,输出干净的 Markdown 和结构化数据。
免费注册 LlamaParse:https://cloud.llamaindex.ai (官网自己搜一下,这里不贴长链接了)
安装
按你熟悉的包管理器来就行。不同语言版本都提供相同的 CLI 命令(叫 lit),除了 WASM 那个。
语言 安装命令 文档 Node.js / TypeScript npm i @llamaindex/liteparse Node.js README Python pip install liteparse Python README Rust cargo install liteparse(CLI)cargo add liteparse(库) Rust crates.io 浏览器(WASM) npm i @llamaindex/liteparse-wasm WASM README
装完之后,命令行里敲 lit --help 就能看到可用命令。
当做一个 Agent 技能用
如果你在用 skills 这个 CLI 工具,可以直接把 LiteParse 当成一个代理技能下载:npx skills add run-llama/llamaparse-agent-skills --skill liteparse
或者手动把 SKILL.md 复制到你的技能配置里,随便你。
CLI 用法
所有安装方式(npm、pip、cargo)得到的 CLI 都是一样的。
解析单个 PDF
# 基本用法lit parse document.pdf# 输出 JSON 格式lit parse document.pdf --format json -o output.json# 只解析部分页面(比如第1-5页,第10页,第15-20页)lit parse document.pdf --target-pages "1-5,10,15-20"# 关掉 OCR(只取原生文字)lit parse document.pdf --no-ocr# 解析一个远程 PDF(通过管道)curl -sL https://example.com/report.pdf | lit parse -
批量解析整个目录
lit batch-parse ./input-directory ./output-directory
这个命令会遍历输入目录里所有 PDF,然后把解析结果写到输出目录。
生成截图
截图对 LLM 代理特别重要——很多视觉信息(图表、布局、颜色标记)纯文本根本抓不到。# 截全部页面lit screenshot document.pdf -o ./screenshots# 只截指定页面lit screenshot document.pdf --target-pages "1,3,5" -o ./screenshots# 自定义 DPI(分辨率)lit screenshot document.pdf --dpi 300 -o ./screenshots
CLI 参考(解析命令)
lit parse Options:-o, --output 输出文件路径--format 输出格式: json|text (默认 text)--no-ocr 禁用 OCR--ocr-language OCR 语言 (Tesseract 格式,默认 eng)--ocr-server-url HTTP OCR 服务器地址(不填则用内置 Tesseract)--tessdata-path tessdata 目录路径--max-pages 最大解析页数 (默认 1000)--target-pages 指定页面范围,如 "1-5,10,15-20"--dpi 渲染 DPI (默认 150)--preserve-small-text保留非常小的文字--password 加密文档的密码--num-workers 并发 OCR 工作线程数 (默认 CPU 核心数-1)-q, --quiet不显示进度输出-h, --help 打印帮助
批量解析命令
lit batch-parse Options:--format 输出格式: json|text--no-ocr 禁用 OCR--ocr-language OCR 语言--ocr-server-url HTTP OCR 服务器地址--tessdata-path tessdata 目录路径--max-pages 每个文件最大解析页数--dpi 渲染 DPI--recursive递归搜索子目录--extension 只处理特定扩展名的文件,如 ".pdf"--password 加密文档密码--num-workers 并发 OCR 工作线程数-q, --quiet不显示进度
截图命令
lit screenshot Options:-o, --output-dir 输出目录 (默认 ./screenshots)--target-pages 截图页面,如 "1,3,5" 或 "1-5"--dpi 渲染 DPI (默认 150)--password 加密文档密码-q, --quiet不显示进度
OCR 设置
默认方案:Tesseract
Tesseract 已经打包在库里了,开箱即用:lit parse document.pdf # 默认开启 OCRlit parse document.pdf --ocr-language fra# 指定法语lit parse document.pdf --no-ocr# 关掉 OCR
如果你在离线环境或者内网(没有外网),可以设置 TESSDATA_PREFIX 环境变量指向一个存放了预下载 .traineddata 文件的目录:export TESSDATA_PREFIX=/path/to/tessdatalit parse document.pdf --ocr-language eng
或者直接在命令行传路径:lit parse document.pdf --tessdata-path /path/to/tessdata
进阶方案:HTTP OCR 服务器
如果你觉得 Tesseract 准确率不够,或者想追求更好的性能,可以接一个 HTTP OCR 服务器。官方提供了 EasyOCR 和 PaddleOCR 的即用型封装示例,你也可以按照 OCR_API_SPEC.md 的规范自己实现。
API 要求很简单:POST /ocr 端点接受 file 和 language 参数返回 JSON 格式:{ results: [{ text, bbox: , confidence }] }
不止 PDF:多格式输入支持
LiteParse 在解析前会自动把很多常见文档格式转成 PDF,前提是你装了对应的转换工具。
办公文档(依赖 LibreOffice):Word(.doc/.docx/.odt等)、PPT(.ppt/.pptx/.odp等)、Excel(.xls/.xlsx/.csv等),甚至 Pages、Keynote 也支持。
安装 LibreOffice:# macOSbrew install --cask libreoffice# Ubuntu/Debianapt-get install libreoffice# Windows (choco)choco install libreoffice-fresh
Windows 用户可能需要把 C:Program FilesLibreOfficeprogram 加到 PATH 里。
图片(依赖 ImageMagick):.jpg、.png、.gif、.bmp、.tiff、.webp、.svg 都能转。
安装 ImageMagick:# macOSbrew install imagemagick# Ubuntu/Debianapt-get install imagemagick# Windowschoco install imagemagick.app
环境变量
目前只有一个比较重要的:
变量 说明 TESSDATA_PREFIX 存放 Tesseract .traineddata 文件的目录,用于离线/内网环境
给开发者的一点信息
LiteParse 是一个 Rust 工作区(workspace),包含核心库和各语言绑定的 crate:crates/├── liteparse/# 核心库 + CLI 二进制├── liteparse-napi/ # Node.js 绑定 (napi-rs)├── liteparse-python/ # Python 绑定 (PyO3)├── liteparse-wasm/ # WASM 绑定 (wasm-bindgen)├── pdfium/ # PDFium Rust 包装└── pdfium-sys/ # PDFium FFI 绑定packages/├── node/ # npm 包 (TS 包装 + 原生二进制)├── python/ # PyPI 包 (Python 包装

