如何下载 PDF,然后输出一段文本?

如何下载 PDF,然后输出一段文本?

我的城市水费账单每月都会通过电子邮件发送给我,作为其服务器上托管的当前 PDF 的链接。这样我就可以随时轻松下载此 PDF。我如何获取该 PDF 并提取我的帐户余额?发邮件或者发短信之类的。

答案1

代码会根据细节而有所不同,但一般方法是:

  • 登录网站(?)
  • wget使用或下载链接到该文件的页面curl
  • 从页面获取 pdf 的链接
  • wget使用或下载文件curl
  • pdftotext使用 poppler-utils 或类似工具从 pdf 中提取文本
  • 使用grepor so从文本结果中获取你想要的数据

如果需要的话,最复杂的部分是登录过程。


当您发表评论时,您不需要登录,并且有一个固定的 URL,这当然简化了它。我们可以下载PDF并直接使用文本内容来提取数据。下面是从示例 pdf 文件中提取一行的示例。该行包含单词ghostview和版本号,可以用作示例值。

$ u='http://www.wave.org.au/jupgrade/images/sample.pdf'
$ curl -s "$u" | pdftotext - - | grep 'ghostscript '
• ghostscript ≥ 5.10 (for example from Red Hat Contrib) and ghostview

下一步可能是提取简单的数值。

答案2

或许可以使用pdftotext:

$ pdftotext -layout transaction.pdf - | grep -C1 amount
                 19876.0
amount paid

该程序是软件包的一部分poppler-utils,可以使用以下命令安装:

sudo apt-get install poppler-utils

-layout选项用于pdftotext尽可能严格地遵循 PDF 布局(否则amount paid我的 PDF 表格布局与文本形式的数量相差甚远)。

相关内容