シンプルな Ruby プログラムを使用して、単純な pdf ファイルを解析し、興味のあるテキストを抽出しようとしました。pdf-readerは、pdf ファイルの解析に非常に優れた宝石であることがわかりました。その宝石で与えられた例とその周りのいくつかのチュートリアルを読みました。
コールバック メソッドを試したところ、pdf ファイルからすべてのテキストを取得できました。しかし、一部のコールバックの引数の背後にある概念がわかりませんでした。
たとえば、pdf に 3 列と 2 行の単純なテーブルがあるとします。(ヘッダー行の値は Name、Address、Age) で、最初の行の値は (Arun、Hoskote、22) であり、U が Ruby スクリプトに従って Ruby を実行すると
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=>[[" "]]}
上記のコールバックから、 args は pdf ファイルに関して何を表していますか? この例で「Arun」(ここに何でも来ることができます) または age 値 i,e '25' (ここに来ることができるすべての値) である名前の値のみを抽出したい場合、ruby プログラムでどのようにそれを行うことができますか? PDFファイルから単一の「関心のある」値のみを取得するPDFパーサーAPIまたはRuby APIはありますか?
必要なテキストを提供する、関心のある特定のコールバックにアクセスする Ruby プログラムを作成するにはどうすればよいですか?