Pergunta

Eu estou procurando uma maneira rápida e confiável para ler / analisar arquivos PDF grandes em Ruby (em Linux e OSX).

Até agora eu encontrei a href="http://pdf-toolkit.rubyforge.org/" bastante antiga e simples PDF-toolkit (a pdftotext -wrapper) e PDF-reader , que era incapaz de ler a maioria dos meus arquivos. Embora as duas bibliotecas fornecer exatamente a funcionalidade que eu estava procurando.

A minha pergunta: eu perdi alguma coisa? Existe uma ferramenta que é mais adequado (mais rápido e mais confiável) para resolver o meu problema?

Foi útil?

Solução

Você pode achar Docsplit útil:

Docsplit é um utilitário de linha de comando e biblioteca Ruby para dividir além de documentos em suas partes componentes: pesquisável UTF-8 texto simples, imagens de página ou miniaturas em qualquer formato, PDFs, páginas individuais, e metadados do documento (título, autor, número de páginas ...)

Outras dicas

Depois de tentar métodos diferentes, eu estou usando PDF-Toolkit agora. É bastante antiga, mas é rápido, estável e confiável. Além disso, ele realmente não precisa ser novo, porque só envolve o xpdf Utilitários .

Você pode usar JRuby e um analisador biblioteca PDF Java como ApachePDFBox ( https: //www.ohloh NET / p / pdfbox ). Veja também http://java-source.net/open-source/pdf-libraries .

Aqui estão algumas opções:

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

A partir desse link, e procurando sourceforge, há um par de utilitários de linha de comando que pode fazer o que quiser, como este: http://pdftohtml.sourceforge.net/

Dependendo de suas necessidades e quais os PDFs aparência, você pode olhar para usando a API do Google Docs (fazer o upload do PDF e depois baixá-lo como texto), ou também pode tentar algo como gocr . Eu tive muita sorte analisar o texto da imagem com gocr no passado, e você só tem que saltar para o shell de fazê-lo, como gocr -i whatever.pdf (acho que trabalha com PDFs).

A desvantagem de tudo isso é que eles são implementações não puro-Ruby, mas lotes do bom (e gratuito) projectos de OCR parecem ser feito dessa forma.

Se você só precisa obter o conteúdo de texto de um arquivo pdf, pdftohtml no SourceForge é eficiente. não é adequado para lidar com imagens.

Você teve uma olhada na CombinePDF biblioteca?

É uma solução rubi puro que permite alguma manipulação PDF, como a extração páginas, sobrepondo uma página PDF em detrimento de outro, a numeração de página, escrevendo textos e tabelas básicas, etc'.

Aqui está um exemplo para stumping um arquivo PDF existente com um logotipo. O exemplo lê um arquivo PDF, extrai uma página para o uso como um selo e selos outro arquivo 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"

Você pode texto também selo, páginas número ou use:

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"

Não é destinado a operações complexas, mas complementa a maioria das bibliotecas PDF autoria e permite que você use modelos PDF em vez de escrever a coisa toda do zero.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top