如何在Linux系统中将PDF转换为Word文件(GUI以及命令行)

本文介绍了两种工具,可以使用图形工具(Calibre)和命令行工具(pdftotext)将PDF文档转换为Linux系统上的可编辑的word文件。 值得注意的是,如果PDF是由图像(例如扫描的书页/图片)组成的,本文中提到的两种用于从PDF文件中提取文本的工具都不能提取文本。
 

使用Calibre (GUI)将PDF转换为文本


Calibre是一个免费的开源电子书软件套件。它支持组织、显示、编辑和转换电子书,支持多种格式。适用于Linux、macOS和Microsoft Windows操作系统。

您的Linux发行版存储库中应该有Calibre,并且您应该能够使用系统上的任何软件存储库来安装它。例如,安装在Debian, Ubuntu, Linux Mint, Fedora, openSUSE,或Arch Linux,使用:
 

  • Debian, Ubuntu或Linux Mint:
sudo apt install calibre

 

  • Fedora:
sudo dnf install calibre

 

  • openSUSE:
sudo zypper install calibre
  • Arch Linux:
sudo pacman -S calibre


Calibre也可以通过使用Flathub包安装在Linux上(需要在一些Linux发行版上设置Flathub / Flatpak)。

在应用程序的下载页面上解释了在Linux上安装Calibre的另一种方式,在那里你还可以找到macOS和Windows二进制文件。

相关:如何使用GIMP或pdftoppm命令行工具将PDF转换为图像(PNG, JPEG) 

现在,您的系统已经安装了Calibre,请启动它并点击添加书籍添加想要转换为文本的PDF(或多个PDF - Calibre支持将多个PDF文件批量转换为文本)。

从图书列表中,选择要转换为文本的PDF(或多个要批量转换为.txt的PDF),然后单击Add Book按钮。在转换窗口的右上角,选择TXT作为OUT Format: 
  


在这个转换对话框中有许多选项可以调整。例如,您可以选择自动删除段落之间的间距,或在段落之间插入空行(Look & Feel -> Layout)。您还可以设置字符编码和行结束样式(system、unix、windows、old_mac),甚至将其格式化为markdown。

配置完成后,单击好吧按钮开始将PDF转换为文本。转换后的.txt文件可以在您设置Calibre库位置的目录中找到(然后在AuthorName / BookName子文件夹;如果无法确定作者或书名,则子文件夹称为“Unknown”)。

在这种情况下,Calibre所缺乏的是一种只能转换页面或页面范围的方法——它目前只能将整个PDF文件转换为文本。

PDF相关:如何使用LibreOffice Writer创建可填充的PDF表单 
 

使用pdftotext将PDF转换为Word(命令行)


pdftotext是一个命令行实用程序,可以将PDF文件转换为纯文本。它有很多选项,包括指定要转换的页面范围、尽可能保持文本的原始物理布局、设置行结束符(unix、dos或mac),甚至可以处理密码保护的PDF文件。

pdftotextis是poppler / poppler-utils / poppler-tools包的一部分(取决于您使用的Linux发行版)。安装此包如下:
 

  • Debian、Ubuntu、Linux Mint和其他基于Debian/Ubuntu的Linux发行版:
sudo apt install poppler-utils

 

  • Fedora:
sudo dnf install poppler-utils

 

  • openSUSE:
sudo zypper install poppler-tools

 

  • Arch Linux:
sudo pacman -S poppler


在其他Linux发行版中,使用包管理器安装poppler / poppler-utils包。

既然包已经安装好了,您就可以将PDF文件转换为纯文本,并保留其布局(我建议使用这个Layout选项,以保持原来的物理布局,但你可以尝试它没有它太)与:
 

sudo pacman -S poppler


你需要更换input.pdfPDF文件的名字,还有output.txt与你想要生成的TXT文件被调用的名称。如果需要,还可以在文件名前添加路径(例如:~ / / mypdf.pdf文档)。如果没有指定输出文本文件,pdftotext将以与原始PDF文件相同的文件名命名该文件。

布局选项在将其转换为文本时保留PDF布局,即使是多列PDF情况。 

如果您只想将PDF的一个页面范围转换为文本,而不是整个PDF文件,该怎么办?使用- f(要转换的首页)和- l(最后要转换的一页),然后是页码,如下所示:
 

pdftotext -layout input.pdf output.txt


取代N第一个和最后一个页码提取,和input.pdf与PDF文件名。

想要使用mac、dos或unix的行结束符?您也可以使用终点紧随其后的是macdosunix. 例如unix行结束符:
 

pdftotext -layout -f M -l N input.pdf


如果不想在页面之间插入分页符,可以添加-nopgbrk: 
 

pdftotext -layout nopgbrk input.pdf


想要批量转换所有PDF文件从一个文件夹到文本文件?pdftotext不支持批量PDF到文本的转换(和pdftotext * . pdf但你可以使用Bash FOR循环将文件夹中的所有PDF文件转换为文本文件:
 

for file in *.pdf; do pdftotext -layout "$file"; done


更多选项,请运行男人pdftotextpdftotext——帮助

 

当然,您也可以尝试Alltoall提供的免费在线PDF转Word工具。