使用vim读取pdf的内容

5

如何使用vim命令在终端中读取pdf文件内容?我尝试使用pdftk来解压缩,但仍无法正常工作。是否有其他方法可以解密或解码pdf文件,以便我们可以在任何Linux版本的终端上使用vim阅读。


1
在vim官网上,vim的定义是很明确的:编辑器vim。它不是PDF阅读器,也不是MS-Word阅读器。当然,你可以使用其他语言,如Java with itext库来编写PDF阅读器,并在vim中调用该工具,但这不是正确的使用vim的方式。这只是我的个人看法。 - Kent
@Kent 但是我们可以使用vim打开任何东西,但主要问题是我们无法阅读它,因为它是加密格式。所以我的任务是解码它,以便我们能够在使用vim时理解pdf的内容。而且最重要的是,在解密时不应该丢失任何内容。 如果您想更好地了解我的问题,请访问http://www.pdflabs.com/docs/pdftk-cli-examples/,这里有一种方法可以解压缩,根据此命令,我们可以使用vim或emacs来阅读pdf。 - Rohit Singhal
pdftk(或qpdf,或cpdf等)可以打开压缩的内容流等操作,但不会将二进制流(如图像、字体等)转换为ASCII85编码。因此,大多数PDF文件在解压缩后仍然包含二进制数据,不适合用于文本编辑器。也许你可以尝试一下COS结构编辑器/浏览器(PoDoFo浏览器、Enfocus PDF浏览器、iText RUPS(它们都是免费的)等)。 - user2846289
内容流中的字符串文字也可以是二进制的。 - user2846289
可能有些偏题,但是 less 可以阅读 PDF 文件。使用命令 less file.pdf - Larry Battle
3个回答

6

如果你想将PDF作为文本阅读,可以尝试使用pdftotext命令,但它不总是美观的。如果你想让vim在PDF阅读器中打开PDF文件,可以在你的.vimrc文件中使用类似以下的内容:

au BufRead *.pdf sil exe "!xdg-open " . shellescape(expand("%:p")) | bd | let &ft=&ft | redraw!

谢谢,但我认为你没有理解我的问题。实际上,我想要解密或解码我拥有的PDF文件。当我尝试直接使用vim读取该PDF时,它会以加密格式给出,我们无法直接阅读它。因此,我想要解密或解码它,以便我们能够理解PDF包含的内容。 - Rohit Singhal
然后您必须首先使用 pdftk 解密文档。除此之外,因为 vim 没有内置的 pdftk 或 pdf 阅读器,我不确定您的进一步需求。 - Conner

3
这个问题和这个问题有些重复。
然而,根据@Conner和@Eric的答案,如果您只对文本内容感兴趣,那么pdftotext实用程序是一种推荐的方法。
例如,可以在此处找到pdftotext的可能方法。
还有一个相当新的Vim插件可以简化这些步骤。 该插件可以在此处此处找到。

您也可以编写一些作为预处理器的ftplugin来提取给定pdf的文本。尽管如此,您将无法使用所提议的工具更改pdf中的任何内容。


2

使用pdf2txt可以提取一些PDF文本内容,然后将其输入vim。当然,您将失去大多数格式,图形等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接