跳到正文

将PDF转换为文本

把PDF里的文字完整提取出来,行和段落原样保留——可直接复制到剪贴板,也可下载为.txt文件。不存储任何文件。

  • 绝不存储
  • 无需排队,无需等待
  • 无需注册,无水印

使用方法

1

添加PDF

将PDF拖放到页面上,立即开始逐页提取。

2

查看并调整

文字会显示在可编辑的文本框中。可开启或关闭分页标记,保存前还能随意修改。

3

复制或下载

点击“全部复制”复制到剪贴板,或下载为.txt文件。

文字从哪里来,又以什么顺序出现

PDF中的字符并不是以文本形式存储的,而是以字形编号的形式指向嵌入的字体;要把它们还原成字母,得依靠文件内的一张映射表,说明每个字形代表哪个字符。大多数生成软件都会写入这张表。一旦缺失——一些设计软件生成的精简字体子集往往就是罪魁祸首——页面在屏幕上看起来完美无缺,提取出来却是一堆乱码,因为读懂它所需的信息从一开始就没有写进去。任何提取工具都无能为力;这不是技术难题,而是数据本身缺失。

在信任输出结果之前,先检查阅读顺序。文字按页面绘制的顺序输出,也就是生成PDF的软件碰巧写入的顺序——而这常常不是人阅读的顺序。一个双栏页面,提取出来可能是左右两栏正确分开,也可能是两栏的行相互交错,完全取决于它是怎么生成的。页眉、页脚、页码和侧边栏则落在它们被绘制的位置,通常夹在正文中间。

有几个小瑕疵值得认识一下,免得百思不解。连字会以字体实际使用的单个字符出现,所以“find”可能是一个字形,而不是f加i,直接搜索“find”就会漏掉它。在行尾断开的带连字符单词会保留连字符,因为这个断行在文件里是真实存在的。直引号也常常变成弯引号,如果文字要用于代码或CSV,这一点就很重要。

扫描页面提取不出任何内容,工具会如实告诉您,而不是交给您一个空文件——文档的照片里没有字符,只有像素。转为轮廓的文字也是如此,设计师特意这样做,是为了让文件在任何地方都能打印得一模一样;到了这一步,它实际上已经是图形了。这两种情况都需要用OCR识别,而不是提取。

如果您需要的是别的

如果分栏很重要,Poppler的pdftotext -layout in.pdf out.txt比浏览器里的任何工具都好:它用真实的空白字符还原视觉间距,分栏依然是分栏,表格也依然是可读的表格。pdftotext -raw则反其道而行,原封不动地给出绘制顺序,有时这正是脚本需要的。

如果要从成百上千个文件中提取文字,mutool draw -F txt和Python的pdfplumber是可靠的基础——尤其是pdfplumber,它会给出每个字符的坐标、字体和字号,您可以按位置而不是靠猜测过滤掉页眉页脚。这正是本页面做不到的,也是批量处理时最关键的一点。

常见问题

会保留段落和换行吗?

会。PDF本身根本不存储段落,只记录每个字符所在的坐标。因此,工具会把处于同一基线上的文字归为一行,并在行间垂直距离变大的地方另起一段,重建出文本结构。最终结果读起来和原文一样,而不是连成一大片。

我的PDF会被存储吗?

不会。文字由您自己的浏览器读取,不会发送到任何地方。页面加载完成后,即使断开网络也照样能用。

提示我的PDF没有文字,这是为什么?

因为它是扫描件或照片:页面本身就是一张图片,而图片里没有可提取的文字。请使用“PDF文字识别(OCR)”,它能直接从图像中识别出文字。

下载前可以编辑文字吗?

可以——文本框完全可编辑,您看到的内容就是最终保存的内容。

表格和分栏怎么处理?

分栏按PDF绘制的顺序读取,通常是正确的,但在复杂的多栏版式中可能会交错混排。表格会输出为一行行文字,而不是网格——如需提取表格,请使用“PDF转Excel”。

小贴士: 纯文本本身不带任何格式:加粗、字号、颜色、图片和表格结构都会被舍弃,这是由纯文本的定义决定的。以矢量轮廓而非真实字符绘制的文字(常见于Logo和一些设计类PDF),不经OCR任何工具都无法提取。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。