PDF 表格转 Markdown:列结构识别
表格是 PDF 中最难完整取出的内容,因为 PDF 本身并不知道自己包含表格。数据里没有行、没有单元格、也没有边框,只有恰好对齐的坐标文字。还原表格,就是识别这种对齐。
把 PDF 或 Word 拖到这里
或从电脑中选择文件
PDF 或 Word (.docx) · 最大 50 MB
如何把 PDF 中的表格提取为 Markdown?
把 PDF 拖入本页转换器。连续若干行中对齐到相同列位置的文字会被判定为表格,并输出为 GitHub Flavored Markdown 管道表格。
为什么直接复制 PDF 表格会变成一团乱?
复制返回的是绘制顺序的文字而非阅读顺序,且 PDF 中没有单元格边界。列结构必须由横坐标重新推导,而复制粘贴并不做这件事。
PDF 表格转 Markdown 的步骤
- 1
转换文档
把 PDF 拖入转换器,表格会与正文一起被自动识别。
- 2
核对列数
将预览与原件对照。某一列始终为空,通常说明源文件中有跨两列的表头。
- 3
修正个别单元格
直接在左侧窗格编辑 Markdown。管道表格是纯文本,增删或合并单元格都是小改动。
- 4
复制到目标位置
把表格粘贴到 GitHub、Obsidian、README 或文档站点,GFM 管道表格在这些地方都能渲染。
表格识别的工作原理
PDF 中每一段文字都带有横坐标与宽度。当两段文字之间的水平间距超过正文字号约一点五倍时,转换器就在此处切分该行:这个距离远宽于词间距,又窄于分栏间隙。
仅凭这一条会在两端对齐的段落上误判,因为它们同样含有较宽的间隙。因此识别器追加了第二个条件:这些间隙必须落在连续多行的相同位置上。随机的词间距不会跨行对齐,真正的列则始终对齐。
只有当至少连续两行共享至少两个重复出现的列位置时,该区块才会输出为表格,其余内容一律保持为段落文字。
能保留与不能保留的内容
Markdown 的表格语法刻意保持简单,这为任何转换器所能保留的内容设定了硬性上限。
- 保留:列结构、行顺序、单元格文字,以及单元格内的加粗与斜体
- 保留:首行视为表头,与绝大多数文档的排版习惯一致
- 丢失:合并单元格在 Markdown 中没有对应写法,会被压入最左侧一列
- 丢失:嵌套表格、单元格底色、边框与列宽
- 近似:跨多行折行的单元格文字会被合并为一个单元格
识别困难的情况
列对齐不一致的表格最难处理:单元格逐个居中,或右对齐的数字列紧挨着左对齐的相邻列且间隙很窄。识别器的取向是宁可把文字留作段落,也不凭空生成一个并不存在的表格,因为错误的表格比纯文本更难清理。
财务报表、价目表、规格表与对比表通常转换良好;带方框字段的密集表单则通常不行,因为它们的结构来自绘制的矩形,而非文字对齐。
常见问题
- 可以只提取表格、跳过其余内容吗?
- 不能自动完成。整份文档都会被转换,表格保持在原位。由于输出是纯文本,删掉周围段落只需几秒。
- 跨页的表格怎么处理?
- 每一页单独识别,因此跨页续排的表格会产生两个表格。合并它们只需删除重复的表头行。
- 右对齐的数字列能识别吗?
- 通常可以。识别按单元格左边缘聚类,因此宽度不一的右对齐数字列偶尔会被拆开,请与原件核对合计数。
- 可以直接输出 CSV 吗?
- 目前不行。Markdown 管道表格用表格软件或一小段脚本即可转为 CSV,CSV 导出已列入计划。