Я пробовал простую программу Ruby, чтобы разобрать простой pdf-файл и извлечь интересующие меня тексты. Я обнаружил, что pdf-reader неплохой камень для разбора файла PDF. Я прочитал примеры, приведенные в этом драгоценном камне, и около tutorials.Как разобрать pdf в Ruby
Я пробовал метод обратного вызова и смог получить весь текст из моего pdf-файла. Но я не понял концепции аргументов для некоторых обратных вызовов.
Например, если мой pdf-файл имеет простую таблицу с тремя столбцами и двумя строками. (Значение строки заголовка является Имя, Адрес, Возраст) и значение первого ряда является (Arun, Hoskote, 22), и когда U запустить рубин следующего рубинового скрипта
receiver = PDF::Reader::RegisterReceiver.new
reader = PDF::Reader.new("Arun.pdf")
reader.pages.each do |page|
page.walk(receiver)
receiver.callbacks.each do |cb|
puts cb.inspect
end
end
Он печатает серию обратных вызовов, среди которых некоторые из интересные обратные вызовы show_text_with_positioning походили следующие
{:name=>:show_text_with_positioning, :args=>[["N", 5, "am", -4, "e"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Ad", 6, "d", 3, "ress"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Age"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Ar", 4, "u", 3, "n"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["H", 3, "o", -5, "sk", 9, "o", -5, "te"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["22"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
из приведенных выше обратных вызовов, что же арг представляют относительно PDF-файл? Если я хочу извлечь только одно имя, которое является «Arun» (здесь все может сюда приходить) или возрастное значение i, e '25' (любое значение может прийти сюда) здесь, в этом примере, как я могу это сделать в рубиновой программе? Есть ли какой-либо PDF-парсер API или Ruby API, чтобы получить только одно «интересное» значение (ы) из файла pdf?
Как я могу написать программу Ruby для доступа к определенному обратному сообщению, которое меня интересует, которое дает мне текст, который я хотел?