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