web-dev-qa-db-fra.com

Convertir un fichier PDF non interrogeable en fichier PDF interrogeable en Python Windows

Besoin d'une solution pour convertir un fichier PDF où chaque page est une image et une page peut contenir du texte, un tableau ou une combinaison des deux en un fichier PDF interrogeable.

J'ai utilisé ABBY FineReader Online, qui fonctionne parfaitement, mais je cherche une solution pouvant être réalisée via Windows Python

J'ai fait une analyse détaillée et voici les liens qui se sont rapprochés de ce que je veux mais pas exactement:

Image numérisée/PDF à Image interrogeable/PDF

Il est recommandé d’utiliser le script Ghost pour le convertir en image, puis le convertir directement en texte. Je ne crois pas que tesseract convertisse les PDF non consultables en fichiers interrogeables. 

Conversion de la recherche PDF en une recherche impossible PDF

La solution ci-dessus aide à l’inverse, c’est-à-dire à convertir les recherches en recherches en recherches. Aussi, je pense que ceux-ci sont valables dans Ubuntu/Linux/MacOS.

Quelqu'un peut-il aider s'il vous plaît aider à dire ce que devrait être le code Python pour atteindre non-interrogeable à interrogeable dans Windows Python


UPDATE 1

J'ai obtenu le résultat souhaité avec Asprise Web Ocr. Ci-dessous le lien et le code:

https://asprise.com/royalty-free-library/python-ocr-api-overview.html

Je recherche une solution pouvant être effectuée via les bibliothèques Windows Python uniquement en tant que

  1. Besoin de ne pas payer les frais d'abonnement à l'avenir 
  2. J'ai besoin de convertir des milliers de documents chaque jour et il sera difficile d'en télécharger un vers l'API, puis de le télécharger, etc.

UPDATE 2

Je connais la solution qui consiste à convertir directement un fichier PDF non interrogeable en texte. Mais je suis à la recherche de tout moyen de convertir des fichiers PDF non interrogeables. J'ai le code pour convertir le PDF en texte avec PyPDF2.

14
Rahul Agarwal

En fait, vous n'avez pas besoin de tout transformer à l'intérieur du pdf en texte. Le texte restera du texte, le tableau restera du tableau et si possible, l’image deviendra du texte . Vous aurez besoin d’un script qui lit le pdf tel quel et commence la conversion en blocs. Le script écrit des blocs de texte jusqu'à la lecture complète du document, puis le transforme en pdf. Quelque chose comme

if line_is_text():
    write_the_line_as_is()
Elif line_is_img():
    transform_img_in_text()# comments below code
...
..
.

Maintenant transform_img_in_text() Je pense que cela pourrait être fait avec beaucoup de bibliothèques externes, une que vous pouvez utiliser pourrait être:

Tesseract OCR Python

Vous pouvez télécharger cette bibliothèque via pip, les instructions fournies dans le lien ci-dessus.

5

Si un solution en ligne ocr est acceptable pour vous, l’API OCR gratuite d’OCR.space peut également créer des PDF interrogeables et fonctionne bien. 

Dans la version gratuite, le PDF créé contient un filigrane. Pour supprimer le filigrane, vous devez mettre à niveau leur plan PRO commercial. Vous pouvez tester l'API avec le formulaire Web sur la page d'accueil.

OCR.space est également disponible en option sur site sans abonnement, mais je ne suis pas sûr du prix. Personnellement, j'utilise l'api gratuit ocr api avec succès.

4
Fabrice Zaks

J'ai utilisé pypdfocr dans le passé pour le faire. Il n'a pas été mis à jour récemment cependant.

Du README:

pypdfocr filename.pdf
--> filename_ocr.pdf will be generated

Lisez attentivement les instructions d’installation pour Windows.

OCRmyPDF est une bibliothèque plus récente: https://github.com/jbarlow83/OCRmyPDF Il existe une image Docker pour Windows

4
iacolippo

J'ai récemment écrit un article de blog où j'ai accompli ceci en utilisant:

  • OCRmyPDF - une bibliothèque python qui enveloppe Tesseract
  • conteneur docker s'exécutant dans Azure

Vous devrez peut-être modifier certains éléments pour répondre à vos besoins, mais je pense que les éléments de base de cet article pourraient être appliqués à vos besoins:

http://martyice.github.io/docker-in-Azure/

1
Marty