使用 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.
但是
这是(尚未)完整的答案。
接下来的步骤是:
- 解析文本并查找标题
- 裁剪图像,这可以通过像 RMagick 或 Mini Magick 这样的库来实现。
pdf-reader
是解决方案之一。但它有时会出现问题,它不会以正确的格式提供文本。我用过。
我会建议使用docsplit . You will find more information about 'pdf-reader' and 'docsplit' in this blog post。
希望这对您有所帮助。如果需要任何说明,请随时发表评论。
我在一个文件夹中有多个具有特定结构的 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.
但是
这是(尚未)完整的答案。 接下来的步骤是:
- 解析文本并查找标题
- 裁剪图像,这可以通过像 RMagick 或 Mini Magick 这样的库来实现。
pdf-reader
是解决方案之一。但它有时会出现问题,它不会以正确的格式提供文本。我用过。
我会建议使用docsplit . You will find more information about 'pdf-reader' and 'docsplit' in this blog post。
希望这对您有所帮助。如果需要任何说明,请随时发表评论。