【问题标题】:Read contents of the pdf using vim [closed]使用 vim 读取 pdf 的内容 [关闭]
【发布时间】:2014-01-22 10:33:36
【问题描述】:

我们如何在终端中使用 vim 命令读取 pdf 文件的内容? 我曾尝试通过解压缩来使用 pdftk,但它仍然不适合我。有没有其他方法可以解密或解码 pdf,以便我们可以使用 vim 在任何 Linux 风格的终端上阅读。

【问题讨论】:

  • 在vim的官网上,vim的定义很明确:vim the editor不是pdf阅读器,也不是MS-Word阅读器。您当然可以用其他语言编写 pdf 阅读器,例如带有 itext 库的 Java。并在 vim 中调用该工具。但这不是使用 vim 的正确方法。我的 2 美分。
  • @Kent 但看到我们可以使用 vim 打开任何东西,但主要是我们无法读取它,因为它是加密格式的。所以我的兴趣是解码它,这样我们就可以在使用vim时理解pdf的内容。最主要的是它在解密时不应该丢失任何东西。如果您想了解我的更多问题,请访问此pdflabs.com/docs/pdftk-cli-examples 有一种解压缩方法,根据此命令,我们可以使用 vim 或 emacs 读取 pdf。
  • pdftk(或 qpdf 或 cpdf,也可以解压缩内容流等)不会 asciify(即ASCII85Encode)二进制流,如图像、字体等。不幸的是。因此,大多数PDF文件解压后仍然包含二进制数据,不适合文本编辑器。也许你想看看 COS 结构的编辑器/浏览器(PoDoFo 浏览器、Enfocus PDF 浏览器、iText RUPS(它们都是免费的)等)。
  • 内容流中的字符串文字也可以是二进制的。
  • 可能跑题了,但less 可以阅读 PDF。 less file.pdf.

标签: pdf vim terminal pdftk


【解决方案1】:

如果您想以文本形式阅读 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包含什么,我们都能理解它。
  • 那你必须先用pdftk解密文件。我不确定你在问什么,因为 vim 没有 pdftk 或内置的 pdf 阅读器。
【解决方案2】:

这个问题或多或少与this one.重复
但是,根据@Conner 和@Eric 的回答,如果您对文本内容感兴趣,推荐使用pdftotext 实用程序。

可以找到pdftotext 的可能方法,例如here.
还有一个相当新的 Vim 插件来简化这些步骤。 这个插件可以找到here或者here

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

【讨论】:

    【解决方案3】:

    一些pdf文本内容可以用pdf2txt提取出来,然后输入vim。当然,你会丢失大部分格式、图形等。

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多