如何在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.pdf
PDF文件的名字,还有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的行结束符?您也可以使用终点
紧随其后的是mac
,dos
或unix
. 例如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
更多选项,请运行男人pdftotext
和pdftotext——帮助
.
当然,您也可以尝试Alltoall提供的免费在线PDF转Word工具。