34 votes

Rendre un PDF existant consultable (OCR) via la ligne de commande / script.

Je suis à la recherche d'un outil scriptable hors ligne qui rende un fichier PDF existant consultable par OCR, en remplaçant le fichier original non consultable par la version consultable, et qui puisse fonctionner sans surveillance.

Par exemple, www.pdfscannerapp.com - fait exactement ce dont j'ai besoin, mais c'est une interface graphique seulement - non scriptable.

Je sais qu'Evernote rend les fichiers PDF consultables, mais ils ne le sont que lorsqu'ils se trouvent dans Evernote.

Je ne cherche pas un OCR parfait, même un OCR modérément acceptable est bien, mais je préférerais un petit utilitaire plutôt qu'un progiciel encombrant.

(J'ai connaissance d'une question similaire, mais différente, sur AD : Recherche d'un logiciel pour numériser ou convertir en PDF consultable et signable - cependant, je n'ai pas besoin de signer ou de remplir des PDF, et mon exigence est que la solution soit scriptable)

EDIT :

1) Plusieurs utilitaires permettent d'extraire du texte structuré, mais pour être extrait, le texte doit être présent ; je fais principalement référence aux PDF qui sont des bitmaps enveloppés, comme c'est le cas des PDF simples générés par des scanners.

2) Je ne suis pas nécessairement à la recherche d'une solution gratuite, et je serais plus qu'heureux de payer pour un bon utilitaire qui fait juste ce dont j'ai besoin, mais je ne suis pas à la recherche d'applications encombrantes avec un million de fonctionnalités qui incluent une fonction OCR mais dont le coût ne justifie pas de les acheter juste pour la fonctionnalité OCR.

3) Comme indiqué ci-dessus, je ne cherche pas un ROC parfait, mais un ROC moyennement acceptable. Malheureusement, d'après mon expérience, tesseract est vraiment en dessous de ce seuil. Je définis comme "modérément acceptable" un OCR qui peut, par exemple, OCR une facture d'électricité de sorte qu'au moins le numéro de compte (numéro de client) est reconnu correctement.

EDIT : "scriptable" ou "automatable", c'est-à-dire capable d'être déclenché automatiquement et de fonctionner sans intervention humaine.

2 votes

...je ne sais pas si cela serait difficile à faire, mais l'OCR Tesseract est souvent mentionné. code.google.com/p/tesseract-ocr et l'OCR dans Unix.SE .

1 votes

Il y a une question similaire aquí La réponse correspond-elle à vos besoins ?

1 votes

Vous mentionnez l'OCR. Vos besoins incluent-ils la gestion des images dans les PDF, ou des fichiers PDF numérisés ? Pour les fichiers qui contiennent du texte sous forme de simple postscript, un convertisseur de PDF en texte comme "PDF2Text Pilot" pourrait vous convenir.

21voto

Daniel Kocevski Points 301

Ce que vous voulez, c'est l'OCR de Tesseract. Il s'agit d'un OCR open source maintenu par Google et qui supporte une variété de plateformes. Il dispose également d'une interface de ligne de commande native. C'est exactement ce que vous cherchez et il est disponible sur le projet de ports Mac ainsi que sur homebrew .

Accueil du projet : https://github.com/tesseract-ocr

Comment installer sur OS X : http://blog.matt-swain.com/post/26419042500/installing-tesseract-ocr-on-mac-os-x-lion

Exemple d'utilisation : tesseract -l eng input.pdf output

0 votes

Beau projet. Dans mes tests, la reconnaissance était médiocre, mais je suis sûr que cela dépend de mon incapacité à l'affiner. Je cherchais une solution plus paresseuse, mais cela pourrait être un bon choix, surtout si vous voulez plus de contrôle et pouvez y consacrer du temps.

0 votes

Tesseract n'est pas très bon comparé aux applications propriétaires plus courantes. En particulier, il a des problèmes avec l'encodage et les mathématiques, et produit souvent beaucoup de caractères grecs.

0 votes

La version OS X permet-elle de saisir des fichiers PDF ? La version Windows ne le permet pas.

14voto

He Nrik Points 688

Une solution qui est facile à mettre en œuvre et qui fournit un pdf de sortie avec la même qualité que le fichier d'entrée plus une taille raisonnable est OCRmyPDF :

https://github.com/jbarlow83/OCRmyPDF

0 votes

Cette solution semble intéressante, même si j'ai trouvé le backend OCR, Tesseract, plutôt décevant (certainement à cause de mes propres limites pour le configurer correctement).

1 votes

J'adore OCRmyPDF, voir ma réponse ci-dessous qui explique comment l'installer et l'automatiser par glisser-déposer rapidement et sans douleur avec docker.

8voto

Andrew Hanson Points 965

Avis de non-responsabilité : PAS UNE SOLUTION OCR (mais cette réponse est toujours utile pour extraire du texte d'un pdf)

Il existe un projet de l'Apache Software Foundation appelé Apache Tika :

Une boîte à outils pour détecter et extraire les métadonnées et le contenu textuel structuré de divers documents à l'aide de bibliothèques d'analyseurs existantes

Ils prennent en charge l'extraction du texte des PDF en utilisant PDFBox :

permet de créer de nouveaux documents PDF, de manipuler des documents existants et d'effectuer des opérations d'archivage. la possibilité d'extraire le contenu des documents. Apache PDFBox comprend également plusieurs utilitaires en ligne de commande

Et ils ont récemment ajouté le support pour ROC (via Tesserac)

Pour une solution basée sur le texte, PDFBox rend très simple l'extraction du texte d'un PDF :

Il dispose également de quelques autres options intéressantes que vous pouvez voir dans Documentation sur ExtractText .

0 votes

C'est une option intéressante pour extraire du texte, mais il n'y a pas de fonction OCR à ma connaissance.

1 votes

@magma OCR signifie "reconnaissance optique de caractères", il y a bien une "capacité OCR". Maintenant, vous devez clarifier : votre problème est-il d'extraire du texte d'une image de faible résolution, telle que celle générée par une caméra VGA, un mauvais scanner ou une image distante ? Dans ce cas, votre problème est différent et nécessite la prise en compte physique d'éléments tels que la super-résolution. S'il vous plaît, posez des questions plus spécifiques et plus courtes afin de pouvoir y répondre. Je vous suggère de simplifier cette question à une fonctionnalité que vous souhaitez. Si vous voulez quelque chose de plus, posez une nouvelle question.

3 votes

@hhh, une chose est d'extraire le texte d'un fichier binaire (tel qu'un PDF) afin qu'il soit utilisable et lisible, en analysant le format binaire. il n'y a rien d'optique là-dedans. le texte est déjà là, ces utilitaires se contentent de l'extraire afin qu'il soit facile pour vos yeux, pour ainsi dire. la reconnaissance optique de caractères est différente dans la mesure où elle essaie de reconnaître des modèles de pixels dans un bitmap et de leur donner suffisamment de sens pour qu'elle puisse produire un fragment de texte correspondant.

6voto

moodforaday Points 2633

Je ne comprends pas très bien quelles sont vos exigences pour pouvoir "script" ceci à partir de la "ligne de commande".

Si vous parlez d'automatisation, c'est possible avec un certain nombre d'utilitaires.

ABBYY FineReader Express + Keyboard Maestro + Hazel

J'utilise ABBYY FineReader Express + Keyboard Maestro + Hazel comme ça :

  1. Hazel surveille un dossier donné pour détecter tout nouveau PDF

  2. si un PDF est trouvé, il est ouvert dans "ABBYY FineReader Express".

  3. Keyboard Maestro automatise ensuite le processus de transformation du PDF en PDF interrogeable (OCR) et enregistre le fichier dans un autre répertoire.

Maintenant, si vous ne possédez pas déjà Hazel et Keyboard Maestro, vos coûts initiaux vont augmenter assez rapidement (bien que je dépende tellement de ces deux logiciels que je les considère comme une bonne affaire).

PDFPen + AppleScript + Actions sur les dossiers

Vous pourriez faire quelque chose de similaire avec PDFPen (ou PDFPenPro) et des actions de dossier et AppleScript. Voir https://gist.github.com/prenagha/1355037 pour un exemple.

Marco Arment a fait un enquête sur les applications d'OCR pour Mac et j'ai trouvé que PDFPen donnait d'excellents résultats et était facile à automatiser.

Une recherche google pour "PDFpen applescript OCR" vous donnera un certain nombre d'alternatives.

0 votes

Bonne réponse TJ. Hazel est incroyable, je le possède et j'aime énormément l'utiliser. Je ne possède pas actuellement abbyy/keyboard maestro, mais Hazel + PDFPen est un combo incroyable. Dans l'ensemble, bien que toutes les réponses soient généralement très bonnes, et qu'elles s'adressent à des publics légèrement différents, je pense que Hazel+PDFPen est une bonne solution pour le problème original. Accepté.

0 votes

+1 sur ABBYYFineReader Express, facilement le meilleur OCR actuellement disponible et j'en ai traversé une douzaine pour un de mes propres projets.

6voto

kenorb Points 11627

Vous pouvez rendre votre PDF existant consultable en le convertissant en fichier texte. Pour cela, il vous faut au moins Imagemagick , Ghostscript (pour la conversion PDF) et Tesseract Outil OCR.

Un exemple de ligne de commande :

$ wget http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf
$ convert -density 300 -depth 8 test.pdf test.png
$ tesseract test*.png test.txt
$ grep -i --color=auto the test*.txt
**The** details as told by surviving crew members, to **the** German publication Spiegel and published on ABC's

Ce système peut être étendu en fonction de vos besoins.

Pour installer les outils requis, sous OSX vous pouvez l'installer via Homebrew :

brew install imagemagick jpeg libpng ghostscript tesseract

Sous Linux, utilisez apt-get ou yum au lieu de brew .

Pour d'autres outils d'OCR, consultez : OCR sur les systèmes Linux

En rapport :

0 votes

L'exemple semble ne pas fonctionner avec plusieurs PNG. J'ai fait une boucle et généré plusieurs fichiers texte, de cette façon je n'ai pas eu des centaines d'erreurs bizarres.

0 votes

J'ai également installé tesseract-lang et j'ai ajouté le paramètre -l deu pour traiter le texte localisé et la qualité de la reconnaissance s'en est trouvée grandement améliorée.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X