iSomor
返回博客

PDF 怎么转成 TXT 纯文本?提取文字后先查这 6 处

8 分钟阅读EVE
手绘 PDF 页面上的文字行流向一张空白纸,其中一行为青绿色,旁边有一个小放大镜

PDF 要转成纯文本,文件里得先有文字层:提取工具拿到的是文件中存好的文字,而不是页面的图像。只导出需要的页面,存成 TXT 后对照原文查 6 处:空白页、双栏顺序、页眉页脚和页码、表格、公式与符号、乱码。顺序确认无误后,最后再整理换行。 TXT 适合摘进笔记、引用原话、在文本编辑器里检索长篇说明书,或把一段内容挪到别的文档里。但它不是页面的副本:字体、图片、分栏和表格线都没了,文字的先后顺序取决于这份 PDF 当初是怎么生成的。

PDF 转文字,到底能得到什么?

纯文本里只有字符和换行。把 PDF 转成文字,就是把文件中以文字形式存储的内容逐一读出来,再排成一串。加粗的标题变成普通的一行,表格变成一行行文字和数字,图片则直接消失。

最容易让人意外的是顺序。PDF 记录的是每段文字画在页面的什么位置,并不一定记录"下一段是哪段"。PyMuPDF 的文档说得很直白:纯文本提取不会对结果做任何美化,对 PDF 来说,输出可能不是通常的阅读顺序,还可能出现意料之外的换行(原文:"output not in usual reading order, unexpected line breaks and so forth",见 PyMuPDF 文本提取示例)。所以,一份 TXT 可能一个字都不少,读起来却是乱的。

你的 PDF 里有可提取的文字吗?

转换之前,先打开 PDF,用鼠标试着选中一句话。

  • 文字能一个个被选中:这一页有文字层,提取工具可以读取。
  • 一句话都选不中:这一页很可能没有文字层。提取工具在这页上没有文字可读,iSomor 的 PDF 提取文字工具也不做 OCR。拿不准的话,直接用工具提取一次,没有可读文字的页面会列出来。
  • 阅读器要求输入密码,或提示禁止复制:文件受保护。请向文件所有者要一份你有权处理、未加密的副本。

同一份文件里也可能两种页面都有,比如报告中插了几页签字页的图片。这些页面提取不出文字,属于正常现象。

PDF 转 TXT 怎么操作?

下面以 iSomor PDF 提取文字 为例。它在浏览器里读取 PDF 已有的文字层,并且可以逐页检查后再取走文字。

  1. 选择一份 PDF。每次处理一份文字型 PDF,最多 20 MB、200 页。超过 200 页的文件即使只选其中几页也无法处理。文件在当前浏览器中处理,不会上传。
  2. 填写要提取的页码。留空表示全部页面;也可以填 1-3, 5 这样的范围。页码按文件中的实际位置从 1 开始算,封面也算一页,所以可能和页面上印的页码不一样。只需要某一章时,只提取这一章,后面要核对的内容也少得多。
  3. 逐页预览。一页页翻看,和原文对照。如果所选页面中有部分没有可读文字,会列出这些页码;跳过了隐藏图层文字的页面也会列出(和阅读器的显示一致,默认隐藏的图层里的文字不提取)。如果所选页面全都没有可读文字,工具会提示「所选页面中没有可读文字」,不会生成 TXT。
  4. 复制或下载。可以复制全部文字,也可以下载 TXT。无论复制还是下载,每两页之间都会插入一个换页符,页与页的边界仍然保留。TXT 文件采用 UTF-8 编码、LF 换行。

单页最多 20 万字符,合计最多 100 万字符。文件特别长的话,分几次提取。

用 TXT 之前,要检查哪些地方?

把原始 PDF 开在旁边,先看下面这几处。提取出来的文字最常在这些地方出错,而且每种问题的处理办法都不一样。

检查项在 TXT 里的样子怎么处理
空白页某些页码被列为没有可读文字,或提示所选页面中没有可读文字先确认那一页是不是图片。不要据此认定整份文件坏了,其余页面可能都正常。
双栏顺序左栏半句话接上了右栏半句话缩小页码范围重新提取,和页面对照。先别删换行,删了只会把问题藏起来。
页眉、页脚、页码段落中间夹着书名、章节名或页码只删对照页面确认过的行。单独成行的数字也可能是章节号或正文数据。
表格单元格变成一串文字和数字,顺序也可能变了引用任何数据前,先按原表把行列关系理清。表头和单位也要看,不能只看数字。
公式与符号上下标、分数、负号、希腊字母被压平或丢失对照原文手动补写公式,或者干脆注明"见原文第几页"。
乱码PDF 显示正常,TXT 里却是方框、问号或错字这与文件中字体的编码方式有关,整理换行解决不了。可以设法找同一文档的其他导出版本。
示意图:一条珊瑚红的之字形箭头在页面左右两栏之间来回跳读

双栏错乱有它自己的成因。如果你要做的是翻译而不是提取,同样的原因也会让双栏论文译文读起来颠三倒四,详见 双栏 PDF 翻译后阅读顺序乱了怎么办。

什么时候整理换行?

顺序对了以后再整理。提取出来的文字常常在每个印刷行末尾断开,很容易想一口气全部合并。可如果两栏还混在一起,或者段落中间还夹着页脚,合并换行只会把错误的片段粘得更牢。

顺序确认无误后,合并段落内的单个换行、保留段落之间的空行,通常是安全的。标题、列表和行末连字符要单独处理。从 PDF 复制出来的文字,为什么总是乱的? 用 iSomor 文字整理工具 实际演示了这几种情况,并给出了处理前后的对比。

示意图:一张纯文本纸,标题和一行短句旁标着珊瑚红小圆点,旁边放着一支铅笔

什么情况下不该转成纯文本?

想要的是可以再利用的文字,纯文本正合适。可如果版式本身承载着意思,比如需要逐行看的表格、带图注的插图、放在上下文里的公式,转成纯文本就不合适了。

如果你真正的目的是读懂一份外文 PDF,先转 TXT 再翻译,等于把这些上下文都丢掉了。iSomor 直接翻译原始的文字型 PDF,并尽量保留页面版式,你可以在原位置读译文,也可以下载 左右对照的双语 PDF。具体哪些内容会留在页面上,见 iSomor 翻译 PDF 时会保留版式吗?。

常见问题

为什么提示没有可读文字?

你选的页面都没有工具能读取的文字层,所以不会生成 TXT。这些页面很可能是扫描页或存成图片的页面。提取工具读取的是文件中存好的文字,不会识别图片里的字。条件允许的话,可以找原始文档导出的 PDF。

TXT 会保留 PDF 的排版吗?

不会。文字按 PDF 中存储的顺序排列,只还原简单的换行。多栏、表格和数学符号都可能错位,所以上面的检查才有必要。

页码应该怎么填?

按文件中的位置填,从 1 开始,封面也算。例如 1-3, 5 表示第 1 到 3 页和第 5 页。同一页填了两次只提取一次,顺序按你填写的先后排列。

页与页之间那个奇怪的符号是什么?

那是复制文字和 TXT 中用来分隔页面的换页符。视编辑器不同,它可能完全看不见,也可能显示成一个小符号或 ^L。可以留着当分页标记,也可以删掉。

加密的 PDF 能转成文字吗?

iSomor PDF 提取文字不行。它不打开加密的 PDF,也不处理禁止复制的文件。请使用你有权处理、未加密的副本。

免费工具:PDF 提取文字,在浏览器本地运行