
在日常工作里,不管你是做开发、运营、财务、知识库、档案整理,
只要碰到 PDF 文件,大概率都会头疼:
内容不能直接复制
表格排版混乱
大量文件需要批量解析
一份 PDF 几百页,人工整理太慢
而 pdf-extract-api 就是一款专门为开发者和团队准备的开源工具,
基于 FastAPI 搭建,轻量、稳定、可扩展,通过 API 的方式即可实现:
✔ 文本提取
✔ 图片提取
✔ 表格解析
✔ 元数据提取
✔ 批量解析任务
✔ 自定义解析策略
更重要的是,它能部署在自己的服务器上,
不依赖第三方服务,不上传敏感文件,数据更安全。
接下来,我就带你用 莱卡云服务器
从零开始搭建一个可在线、可远程访问的 pdf-extract-api 服务。

这类 PDF API 工具非常适用以下场景:
1. PDF 文本提取
自动从 PDF 中提取所有纯文本,非常适合做:
搜索引擎索引
自动写摘要
自动问答系统(Bot)
数据挖掘
2. 表格提取(结构化数据)
PDF 里的表格是最麻烦的部分,pdf-extract-api 能自动识别表格并转成:
JSON
CSV
矩阵格式
非常适合财务报表、购买记录、合同台账。
3. 图片抽取
可以从文档中抽出所有图片资源,用于:
封面查重
内部审计
二次图像识别
4. 元数据解析
包括标题、作者、生成器、页数、字体等信息。
5. 批量解析任务
你可以一次丢几十个或上百个 PDF,让 API 在后台自动解析。
本地部署虽然能跑,但存在:
电脑性能有限,批量任务容易卡
本地网络不稳定
不方便团队共享
不能 7×24 小时提供 API 服务
部署到云服务器:
✔ 可长期运行,不中断
FastAPI 服务会一直保持在线。
✔ 不占用本地资源
本地只负责发请求,解析全部丢给服务器处理。
✔ 团队共享更方便
多个同事可以统一调用 API。
✔ 更安全
所有 PDF 都存储在你的服务器,不会外泄。
因此非常适合企业内部系统、自动化系统、知识库、财务文件解析等场景。
为 PDF 解析工具推荐的配置:
2~4 核 CPU(文本解析很吃 CPU)
8GB 内存 起步
40GB SSD(PDF 文件体积普遍较大)
系统:Ubuntu 22.04 或 Debian 12
带宽:10Mbps 以上即可
在莱卡云这样的节点上部署,会更加稳定。
更新系统:
sudo apt update sudo apt upgrade -y
安装依赖:
sudo apt install -y git python3 python3-venv python3-pip poppler-utils
其中:
poppler-utils 是 PDF 文本提取工具(pdftotext 等)
Python 用于运行 FastAPI 服务端
你可以在本地把项目打包后上传:
scp pdf-extract-api.zip root@服务器IP:/opt/
进入目录并解压:
cd /opt unzip pdf-extract-api.zip cd pdf-extract-api
python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt
FastAPI 会自动安装包括:
Uvicorn
PDF 解析工具包
表格识别组件
文档解析算法
source venv/bin/activate uvicorn api:app --host 0.0.0.0 --port 8000
如果项目入口是 main.py,则替换为:
uvicorn main:app --host 0.0.0.0 --port 8000
启动后会输出:
Running on http://0.0.0.0:8000
你可以访问:
http://你的服务器IP:8000/docs
就能看到 FastAPI 提供的可交互 API 文档页面。
(这一点非常好用:上传 PDF、调用 API、参数,都能在页面上直接调试。)
下面帮你模拟一个从上传到解析的真实场景。
① 上传 PDF 文件
在 /docs 里找到:
/extract_text
/extract_images
/extract_tables
这三个接口通常都支持文件上传。
② 选择解析功能
例如在 /extract_text 裡上传一个合同 PDF:
服务器会自动输出:
所有文本内容
页码信息
原格式大致结构(按空行与段落)
③ 提取表格(非常实用)
访问 /extract_tables
上传一份财务报表,它可能会自动识别:
[ { "page": 1, "table_index": 0, "data": [ ["日期", "项目", "金额"], ["2023/05/01", "设备采购", "¥ 18200"], ["2023/06/10", "服务器续费", "¥ 5200"] ] } ]
这就很适合导入数据库进行二次分析。
④ 提取图片资源
/extract_images 会返回所有内嵌图片,比如:
PDF 封面
插图
扫描文档的原图分块
这些可以用于审计、素材复用、OCR 加工。
如果你在莱卡云服务器上跑 pdf-extract-api,还可以做更多事情:
✔ 批量处理上传目录
例如监控 /data/pdfs/input
任何上传 PDF → 自动解析 → 产出 JSON。
✔ 将解析结果接入你自己的系统
如:
企业 ERP
文档管理系统
知识库问答系统
✔ 配合大模型自动总结 / 生成问答
从 PDF 提取文本 → 大模型总结成 QA → 存库
可快速生成企业知识问答库。
✔ 与对象存储配套使用
解析结果自动上传 OSS,方便长期保存。
✔ 作为内部微服务使用
团队里任何人都能通过 API 带 PDF 来解析。
批量解析建议使用异步任务(Celery/RQ)
对扫描版 PDF 结合 OCR 效果更好
大文件建议限制上传大小,避免打满服务器
表格解析不完美时,可自定义参数优化
强烈建议使用 tmux/screen 运行服务,防止 SSH 掉线