「Linux」- PDF 转 TXT

  CREATED BY JENKINSBOT

问题描述

在工作中,我们需要将 PDF 文档转换为 TXT 文档,而不是逐行复制粘贴。

该笔记将记录:如何将 PDF 文档转换为 TXT 文档。

解决方案

方法一、复制粘贴

在普通情况下,可以直接复制粘贴文档内容(但这仅适用于文档内容少的场景);

方法二、使用 pdftotxt 命令

如果需要使用命令行进行批量转化的话,可以使用 pdftotxt 命令:

# apt-file search -x 'bin/pdftotext'
poppler-utils: /usr/bin/pdftotext

# apt-get install poppler-utils

# pdftotext -nopgbrk AADEBUG_Mar_03.pdf

poppler-utils 中,还包含了许多其他的命令,这里不再展开介绍。

方法三、使用图形工具

比如 WPS 可以进行转化,如果文档数量少,强烈推荐该方案。

常见问题汇总

复制PDF文本中的内容时出现乱码

当复制 PDF 内容后,在粘贴时,会出现“乱码”。例如下面的样子:

v§‡‹3}-Š9‡‹„1–

其实这不是乱码,而是没有字体。因为在 PDF 中嵌有我们电脑中没有的字体。

可以使用 pdfsandwich 命令进行处理:

pdfsandwich AADEBUG_Mar_03.pdf

执行该命令之后会生成一个名为 AADEBUG_Mar_03_ocr.pdf 的PDF文件,这个新的PDF文件是可以直接复制的。命令 pdfsandwich 属于pdfsandwich包,安装即可:

# apt-file search -x 'bin/sandwich'
pdfsandwich: /usr/bin/pdfsandwich

# apt-get install pdfsandwich

使用pdffonts命令可以查看PDF所使用的字体,该命令属于poppler-utils包(Debian 8)。查看字体的命令如下:

# pdffonts AADEBUG_Mar_03.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
[none]                               Type 3            Custom           yes no  no       9  0
[none]                               Type 3            Custom           yes no  no     261  0
[none]                               Type 3            Custom           yes no  no     305  0
[none]                               Type 3            Custom           yes no  no     362  0
[none]                               Type 3            Custom           yes no  no     412  0
[none]                               Type 3            Custom           yes no  no     426  0
[none]                               Type 3            Custom           yes no  no     463  0
[none]                               Type 3            Custom           yes no  no     475  0
[none]                               Type 3            Custom           yes no  no     492  0
[none]                               Type 3            Custom           yes no  no     519  0
[none]                               Type 3            Custom           yes no  no     528  0
[none]                               Type 3            Custom           yes no  no     550  0
[none]                               Type 3            Custom           yes no  no     561  0
[none]                               Type 3            Custom           yes no  no     568  0

# pdffonts AADEBUG_Mar_03_ocr.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes      3  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     16  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     29  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     42  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     55  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     68  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     81  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes     94  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    107  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    120  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    133  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    146  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    159  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    172  0
GlyphLessFont                        CID TrueType      Identity-H       yes no  yes    185  0

可以对比原PDF与使用pdfsandwich命令进行转化后的PDF,它们的字体有所不同。

参考文献

PDF文件里面的中文复制到word怎么就乱码了?怎么解决?
PDFLaTex 输出的 PDF 复制时得到乱码怎么解决?
check which fonts are embedded in the final pdf