간단한 PDF 파일을 구문 분석하고 내가 관심있는 텍스트를 추출하기 위해 간단한 Ruby 프로그램을 사용해 왔습니다. pdf-reader은 pdf 파일 구문 분석에 꽤 좋은 보석입니다. 나는 그 보석에 주어진 예제와 그 주위의 약간의 tutorials을 읽었습니다.Ruby에서 pdf를 구문 분석하는 방법
콜백 메서드를 시도하고 내 PDF 파일에서 모든 텍스트를 가져올 수있었습니다. 그러나 콜백의 주장에 대한 개념을 이해하지 못했습니다.
예를 들어, 내 pdf에 3 열 2 행의 간단한 테이블이있는 경우. (헤더 행 값은 이름, 주소, 나이입니다)와 첫 번째 행의 값은 (룬, 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 흥미로운 콜백 이 인수는 pdf 파일에 대해서 무엇을 상징 하는가, 위의 콜백에서
{: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=>[[" "]]}
을 다음과 같이인가? 이 예제에서 'Arun'(여기에 무엇이든 올 수있는) 이름 값 또는 여기에 나이 값 i, '25'(여기에 값이 올 수 있음) 만 추출하려면 어떻게해야합니까? PDF 파일에서 하나의 "관심있는"값만 가져올 수있는 PDF- 파서 API 또는 Ruby API가 있습니까?
내가 원했던 특정 콜백에 액세스하기 위해 Ruby 프로그램을 작성하려면 어떻게해야합니까? 텍스트를 일단
receiver = PDF::Reader::TextReceiver.new($stdout)
PDF::Reader.file("Arun.pdf", receiver)
하면, 당신은 정기적으로 사용할 수 있습니다 당신은 특히 텍스트 만 원하는 경우