2009-04-22 17 views
5

Qualcuno ha tentato di estrarre testo da un PDF utilizzando una libreria OCR e Java? Cosa hai trovato per essere la libreria più affidabile per l'estrazione del testo. La maggior parte degli approcci che ho visto (tesseract, GOCR) sono librerie C che richiedono la scrittura di un codice JNI.Approccio di estrazione del testo in PDF tramite l'OCR

Ho familiarità con pdfbox, che ora è un progetto di incubatore Apache alla versione 0.8.x, ma l'estrazione del testo non è sempre accurata. Sto cercando un approccio alternativo che sia alquanto più affidabile.

Non ho ancora provato Asprise JavaPDF, nel tentativo di provarlo, ma volevo sapere di più sull'approccio OCR (se è possibile).

Qualsiasi aiuto sarebbe apprezzato.

+0

Stai utilizzando un PDF strutturato? Se sei hai la possibilità in JAVA di afferrare il testo dai metadati PDF. – northpole

+1

No, non tutti i PDF sono strutturati. – Jon

risposta

1

Se si desidera estrarre OCR da PDF basato su testo, potrebbe essere necessario convertirlo prima in un'immagine.

7

Se si dispone di un PDF basato su testo, si consiglia vivamente di PDFTextStream. Non è gratuito, ma la licenza è ragionevole ed è molto meglio di PDFBox. PDFBox soffoca su molti file PDF generati da strumenti più recenti e non è troppo coerente con i PDF che può gestire. PDFTextStream gestisce qualsiasi PDF che lancio, inclusi PDF con immagini PNG incorporate, che PDFBox non può fare.

Se si desidera che la gente di PDFTextStream aggiunga OCR, è possibile che ascolti.

+0

Grazie, suona bene, peccato per il prezzo però ... – Jon

+1

Diversi anni più tardi, ma ora PDFTextStream ha una versione gratuita (con un 1 Tread cap) –

+0

Se il PDF è già basato sul testo, perché discutere OCR? Basta usare PDFBox, iText, PDFTextStream o qualsiasi altra cosa per analizzare il testo. OCR è per le volte in cui il PDF è un'immagine, ad esempio da uno scanner. Se il PDF è un'immagine scansionata, né PDFBox, iText, né PDFTextStream ti aiuteranno. – mmcrae

1

È possibile utilizzare i wrapper Java di Tesseract - tesjeract o Tess4J - per eseguire l'OCR. Tuttavia, per PDF, è necessario convertire prima l'immagine (PNG o TIFF) prima di inviarla al motore OCR.

VietOCR chiama Tesseract eseguibile per eseguire l'estrazione del testo. Utilizza GhostScript per la conversione da PDF a immagine.

2

Utilizziamo ABBYY FineReader Engine 11. Hanno un wrapper java.

Pro:

  • È perfettamente compatibile con tutte le lingue (inglese, russo, uzbechi, ecc) e che fanno vero OCR (anche se avete pdf senza OCR essi svolgono il rendering in un primo momento e OCR).

Contro:

  • Costa. Devi acquistare la licenza per sviluppatore e la licenza per l'utente finale.

  • Ed è ESTREMAMENTE lento.

+0

Grazie per la risposta e la tua onestà sul prodotto. Per alcuni anni, le domande che chiedono di raccomandare gli strumenti sono fuori tema e la loro risposta è considerata "non fatta". (in realtà, la domanda dovrebbe essere cancellata se non ha più alcun uso) –

Problemi correlati