使用 ruby 解析 PDF 文档

Parse a PDF document with ruby

我在一个文件夹中有多个具有特定结构的 PDF 文档:

现在我希望能够解析 PDF 中的信息。请注意段落的长度不同。

显然我不是要你为我解决问题,但我确实需要一些关于如何实现这一点的指导。

我以前使用过 nokogiri,技术上我需要类似的东西,但对于 PDF。

因此我的示例的伪结果如下所示:

- ItemA
  - Title: ItemA
  - File: 123456789.pdf
  - Image: ImageA.png (the image was stored on disk)
  - Subtitle1: Content for subtitle 1
  - Subtitle2: Content for subtitle 2
  - Subtitle3: Content for subtitle 3
- TitleB
  - [...]

获取文本

文本可以像这样轻松解析:

# gem install pdf-reader
require 'pdf-reader'

reader = PDF::Reader.new('my.pdf')

reader.pages.each do |page|
  puts page.text
end

正在保存图像

这可以用同一个库来完成。请参阅示例脚本 examples/extract_images.rb.

但是

这是(尚未)完整的答案。 接下来的步骤是:

  1. 解析文本并查找标题
  2. 裁剪图像,这可以通过像 RMagick 或 Mini Magick 这样的库来实现。

pdf-reader 是解决方案之一。但它有时会出现问题,它不会以正确的格式提供文本。我用过。

我会建议使用docsplit . You will find more information about 'pdf-reader' and 'docsplit' in this blog post

希望这对您有所帮助。如果需要任何说明,请随时发表评论。