2017-01-05 5 views
0

텍스트가 PDF 파일에 포함되어 있는지 확인하기 위해 몇 가지 테스트를 작성해야합니다. 필자는 출력물이 좋지 않다는 것을 제외하고는 파일에서 텍스트를 렌더링 할 때 모두 좋은 PDF 판독기 젬을 발견했습니다. 예를 들어, Date of first registration of the product을 읽어야하지만 PDF 리더는 Date offirstregistrationoftheproduct으로 간주합니다. 따라서 내가 주장을 실행할 때 텍스트의 간격 때문에 실패합니다.PDF 리더 오이 루비

내 코드 :

expected_text = 'Date of first registration of the product' 

file = File.open(my_pdf, "rb") 
    PDF::Reader.open(file) do |reader| 
    reader.pages.each do |page| 
     expect(page).to have_text expected_text 
    end 

결과는 에러를 만났다 아닌 RSpec에 기대입니다.

내 어설 션에서 읽을 수 있도록이 텍스트를 올바르게 포맷 할 수있는 방법이 있습니까?

+0

해당 텍스트가 들어있는 샘플 PDF를 제공합니까? – Stefan

+0

유감스럽게도 테스트 데이터 임에도 불구하고 감도로 인해 사본을 업로드 할 수 없습니다 .-( – Tom

+0

텍스트만으로 PDF를 생성 할 수 없습니까? 실제 입력없이 도움을 줄 수 있을지 모르겠습니다. . – Stefan

답변

0

Reader의 페이지 개체가 텍스트가 아닙니다. pdf에서 텍스트를 가져 오려면 page.text을 사용할 수 있습니다. 정규식을 사용하면 문제가 해결 될 수 있습니다.

다음과 같이 시도해보십시오.

expected_text = 'Date of first registration of the product' 

file = File.open(my_pdf, "rb") 
    PDF::Reader.open(file) do |reader| 
    reader.pages.each do |page| 
     expect(page.text.match(/#{expected_text}/)).to be true 
    end