복붙노트

[RUBY-ON-RAILS] 루비 : PDF 파일을 읽기

RUBY-ON-RAILS

루비 : PDF 파일을 읽기

나는 빠르고 (Linux 및 OSX에) 루비 / 구문 분석이 큰 PDF 파일을 읽을 수있는 신뢰할 수있는 방법을 찾고 있어요.

지금까지 내 대부분의 파일을 읽을 수 없습니다 오히려 오래되고 간단한 PDF-툴킷 (A pdftotext-래퍼) 및 PDF 리더를 발견했습니다. 두 라이브러리는 내가 찾던 정확히 기능을 제공하지만.

내 질문은 : 되세요 내가 뭔가를 놓친? 내 문제를 해결하기 위해 (더 빠르고 더 신뢰할 수있는) 더 적합한 도구가 있습니까?

해결법

  1. ==============================

    1.당신은 Docsplit 유용하게 찾을 수 있습니다 :

    당신은 Docsplit 유용하게 찾을 수 있습니다 :

  2. ==============================

    2.다른 방법을 시도 후, 지금 PDF-툴킷을 사용하고 있습니다. 그것은 아주 오래된,하지만 그것은 빠르고 안정적인입니다. 그것은 단지에서 xpdf 명령 행 유틸리티를 감싸고 있기 때문에 게다가, 그것은 정말 새로운 일 필요는 없습니다.

    다른 방법을 시도 후, 지금 PDF-툴킷을 사용하고 있습니다. 그것은 아주 오래된,하지만 그것은 빠르고 안정적인입니다. 그것은 단지에서 xpdf 명령 행 유틸리티를 감싸고 있기 때문에 게다가, 그것은 정말 새로운 일 필요는 없습니다.

  3. ==============================

    3.당신은 JRuby에서와 같은 ApachePDFBox 같은 자바 PDF 라이브러리 파서 (https://www.ohloh.net/p/pdfbox)를 사용할 수 있습니다. 또한 http://java-source.net/open-source/pdf-libraries 참조하십시오.

    당신은 JRuby에서와 같은 ApachePDFBox 같은 자바 PDF 라이브러리 파서 (https://www.ohloh.net/p/pdfbox)를 사용할 수 있습니다. 또한 http://java-source.net/open-source/pdf-libraries 참조하십시오.

  4. ==============================

    4.다음은 몇 가지 옵션이있다 :

    다음은 몇 가지 옵션이있다 :

    http://en.wikipedia.org/wiki/List_of_PDF_software

    링크 및 검색 소스 포지에서, 이와 같은, 당신이 원하는 것을 할 수있는 명령 행 유틸리티의 몇 가지가있다 : http://pdftohtml.sourceforge.net/

    당신의 요구 사항과 어떤 PDF 파일의 모양에 따라, 당신은 Google 문서 도구 API (PDF 파일을 업로드 한 후 텍스트로 다운로드)를 사용하여 볼 수도 있고, 또한 gocr 뭔가를 시도 할 수 있습니다. 나는 과거에 gocr 행운 구문 분석 이미지 텍스트를 많이 했어, 당신은 단지 그것을 할 쉘에게 반송해야 할 것 같은 gocr -i whatever.pdf (나는 그것이 PDF 파일과 함께 작동 생각한다).

    이 모든 단점은 순수 루비 구현을하지 않은 것입니다,하지만 좋은 (무료) OCR 프로젝트의 많은 방법이 있다고 할 것으로 보인다.

  5. ==============================

    5.그냥 PDF 파일에서 텍스트 콘텐츠를해야하는 경우, 소스 포지에서 pdftohtml 효율적입니다. 그것은 이미지 처리에 적합하지 않습니다.

    그냥 PDF 파일에서 텍스트 콘텐츠를해야하는 경우, 소스 포지에서 pdftohtml 효율적입니다. 그것은 이미지 처리에 적합하지 않습니다.

  6. ==============================

    6.당신은 CombinePDF 라이브러리를 살펴 있었나요?

    당신은 CombinePDF 라이브러리를 살펴 있었나요?

    그것은 '등의 기본 텍스트와 테이블을 작성, 다른 통해 하나의 PDF 페이지, 페이지 번호를 오버레이 등 추출하는 페이지로, 일부 PDF 조작을 할 수있는 순수 루비 솔루션입니다.

    여기에 로고가 기존의 PDF 파일을 유세에 대한 예입니다. 이 예는 PDF 파일을 읽고 스탬프 및 우표 다른 PDF 파일로 사용하는 한 페이지를 추출합니다.

    require 'combine_pdf'
    company_logo = CombinePDF.load("company_logo.pdf").pages[0]
    pdf = CombinePDF.load "content_file.pdf"
    pdf.pages.each {|page| page << company_logo}
    pdf.save "content_with_logo.pdf"
    

    또한 텍스트, 숫자 페이지 또는 사용을 근절 할 수 있습니다 :

    require 'combine_pdf'
    
    pdf = CombinePDF.load "content_file.pdf"
    
    pdf.number_pages #adds page numbers. you can add formatting and placement options.
    
    pdf.pages.each {|page| page.textbox "One Way To Stamp"}
    
    #you can a shortcut method to stamp pages
    pdf.stamp_pages "Another way to stamp"
    
    #you can use the shortcut method for both text and PDF stamps
    company_logo = CombinePDF.load("company_logo.pdf").pages[0]
    pdf.stamp_pages company_logo
    
    # you can use write simple tables
    pdf.pages[0].write_table headers: ['first name', 'surname'], table_data: [['John', 'Doe'], ['Mr.', 'Smith']]
    
    pdf.save "content_with_logo.pdf"
    

    그것은 복잡한 작업에 대한 의미하지만, 대부분의 PDF 제작 라이브러리를 보완하고 대신 처음부터 모든 것을 작성하는 PDF 템플릿을 사용할 수 있습니다 아니에요.

  7. from https://stackoverflow.com/questions/773193/ruby-reading-pdf-files by cc-by-sa and MIT license