【问题标题】:Print contents of a PDF to the command line将 PDF 的内容打印到命令行
【发布时间】:2011-12-04 21:24:13
【问题描述】:

我正在寻找一个命令行程序,它可以打印出 PDF 文件的文本,就像 cat 打印文本文件一样。

我找到了pdftotxt,这是可行的,但我更喜欢复制cat 功能的东西,因为我想通过管道连接到grep。谢谢!

【问题讨论】:

  • 虽然它看起来不像是解决这个问题的方法,但任何有兴趣从命令行与 PDF 文件交互的人都应该知道pdftk。 (您可以查看data_dump 命令,看看是否可以从中获得任何有用的信息...)

标签: linux pdf command-line cat


【解决方案1】:

pdftotext 的手册页上,我发现了这个:

pdftotext [选项] [PDF 文件 [文本文件]]

说明 Pdftotext 将可移植文档格式 (PDF) 文件转换为纯文本。

Pdftotext 读取 PDF 文件 PDF-file,并写入文本文件 text-file。如果未指定 text-file,则 pdftotext 将 file.pdf 转换为 file.txt。 如果 text-file 为 '-',则将文本发送到标准输出。

因此要输出到stdout,以便通过管道传送到grep,请使用:

pdftotext mydoc.pdf - | grep mysearchterm

【讨论】:

【解决方案2】:

也许你可以试试这个:https://github.com/luochen1990/nodejs-easy-pdf-parser

它是一个 npm 包,你需要安装 nodejs(和 npm)才能使用它。

可以作为命令行工具使用:

npm install -g easy-pdf-parser
pdf2text test.pdf > test.txt

而且这个工具会按它们的 y 坐标对文本行进行排序,所以它在大多数情况下都很好用。它也适用于 unicode 和跨平台(作为比较:mingw64 的 pdftotext 在 windows 上会丢失 unicode 字符)。

【讨论】:

  • 我尝试的第一个 pdf 出现错误:(node:3972) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'Pages' of undefined
  • @masterxilo 可能取决于 pdf 文件的内容,您能否就您的 pdf 文件提出问题?
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
相关资源
最近更新 更多