「Linux」- PDF 转 TXT @20210126
问题描述
在工作中,我们需要将 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}-91
其实这不是乱码,而是没有字体。因为在 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,它们的字体有所不同。
参考文献
WikiNotes/PDF 转 TXT
PDF文件里面的中文复制到word怎么就乱码了?怎么解决?
PDFLaTex 输出的 PDF 复制时得到乱码怎么解决?
check which fonts are embedded in the final pdf