2015-01-24 3 views
4

У меня есть несколько документов PDF в папке, которые имеют определенную структуру:Разбор PDF документ с рубином

enter image description here

Теперь я хочу, чтобы иметь возможность анализировать информацию из 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 
    - [...] 
+1

Несмотря на то, что вы внимательно это сформулировали, я думаю, что вам может быть лучше, просто подойдет прямо к вопросу о рекомендациях по программному обеспечению на бета-сайте http://softwarerecs.stackexchange.com/ - есть несколько библиотек обработки PDF-файлов, и похоже, что вы хотите что-то, что будет хорошо разбираться в структуре данных. Попросив «лучшую библиотеку Ruby для разбора PDF-файлов» и используя контент из вашего вопроса здесь, я думаю, что это очень приемлемый вопрос на этом сайте SE. Скорее всего, библиотека будет включать пример кода. –

+0

@NeilSlater Hey Neill, спасибо за ваш комментарий. Я знаю, что стиль моего вопроса немного сложный. Я действительно думаю, что это конкретная проблема разработки программного обеспечения, и я уже опубликовал свой собственный ответ, так что другие люди могут по-прежнему пользоваться преимуществами. – Besi

+0

ОК, я не думаю, что это не по теме, просто вы можете получить другой фокус (лучший инструмент для работы) ответы на другом сайте. Если вы собираетесь отвечать самим себе, то я думаю, что это будет очень полезно для других, чтобы найти это на SO.Лучшая ссылка в разделе «Связанные», безусловно, устарела, и в настоящее время она будет рассмотрена без темы –

ответ

3

получения текста

текст легко может быть разобрана так:

# 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.
5

является одним из решений. Но у него есть проблемы, иногда он не дает текст в надлежащем формате. Я использовал его.

Я предложу использовать docsplit. Более подробную информацию о «pdf-reader» и «docsplit» вы найдете в this blog post.

Надеюсь, это поможет. Если какие-либо разъяснения требуются, не стесняйтесь комментировать.

+0

im, используя pdf-reader. просто наткнулся на проблему, где он не делает большой работы над верхними индексами. то есть. если есть 50 верхний индекс 100, он будет считать его «50100» – appleLover

+0

@appleLover вы попробовали '' 'docsplit''' – Shweta

+0

да, docsplit did not help. Я получил его на работу после больших усилий. PDF-Reader имеет эту функцию обратного вызова, где вы можете получить доступ к каждой маленькой части данных в PDF, прежде чем их библиотека обработает ее. поэтому я использовал обратные вызовы и сам разбирал их, затем объединил их с другими данными из PDF-ридера, которые не были повреждены – appleLover