PDF 提取文字 把 PDF 内嵌文字层抽出来,输出纯 TXT 或带启发式标题/段落的 Markdown。本地处理不上传,适合翻译、笔记、AI 投喂场景。不还原版式——扫描件请先 OCR。
| 格式 | 写法 | 适合 |
|---|---|---|
| 纯文字 TXT | 段落用空行分隔,无任何标记 | 翻译、文本对比、纯阅读 |
| Markdown | # ## ### 标题 + - 列表 | AI 投喂、笔记软件、保留章节感 |
格式可以随时切换,不用重新提取——内部解析结果一致,只是渲染策略不同。
PDF 文字层只有”位置 + 内容”,没有”段落 / 标题”概念。本工具按几个简单规则推断:
# / ## / ###• - 1. 开头的行 → markdown list 标准化为 - 或 1. 这套规则对论文、白皮书、说明书效果最好;对散文、小说、PPT 转 PDF 则只能拼出段落,标题靠手动加。
文件大或只想抽某几页时,“页面范围”输入框支持:
1-5 第 1 至 5 页1, 3, 5 第 1、3、5 页1-3, 7, 10- 第 1-3、第 7、第 10 至末页改范围后会自动重新提取(debounce 250ms);切换格式不会重提取,只换渲染。
不能。本工具只读 PDF 的文字层(用 pdf.js 的 getTextContent),扫描件本质是图片,文字层为空,提取结果也是空。处理扫描件需要先 OCR——可以先用 PDF 转图片 导出每页 PNG,再用本地 OCR(Tesseract、PaddleOCR)或在线 OCR 服务识别为文字。
启发式判断,按字号比例:全文出现频率最高的字号被视为"正文字号",比正文大 1.6× 且行长 < 80 字 → #;大 1.3× → ##;大 1.1× 且单行 → ###。这对有清晰章节标题的论文、报告、说明书识别效果好;对纯散文(字号无差异)则全是普通段落。识别错了请手动改。
会按 y 坐标分行——双栏 PDF 的左右两栏在同一 y 高度,会被错误地拼到同一行。解决:先用 PDF 拆分 按页拆,或先用 PDF 编辑工具裁成单栏;或者直接用纯 TXT 格式后手动整理。本工具不做复杂版面分析,定位是"快速、轻量、不上传"。
表格:单元格按位置读出来再按行拼,结果是纯文本流,原本的列对齐会丢失。需要保留表格结构请走专业工具(Tabula、camelot-py)。公式:LaTeX 渲染的公式在 PDF 里通常只有图像,文字层为空——会丢失;MathJax 渲染的公式有时能抽出 Unicode 字符(不全)。简单说:纯文字段落 → 效果好;含表格/公式 → 注意检查。
不会。中文和英文在文字流里是独立 char,按 x 坐标拼接;中文之间不插空格,英文单词之间根据 x 间距判断是否插空格——和原文保持一致。注意:某些 PDF 用了不规范字体导致中文出现"乱码字符"(Unicode PUA 私有码点),是字体编码问题,本工具无能为力,需要用 OCR 重新识别。
提取在浏览器主线程跑,每 4 页让出一次让 UI 不卡。100 页文档大概 2-5 秒;500 页可能需要 10-20 秒。Mac M 系列、PC 桌面端会更快,老安卓机会慢。没必要先抽全文——可以先填"页面范围"如 1-20,只看前面几节确认效果,再扩到全部。