GNU/Linux >> Tutoriels Linux >  >> Linux

Comment extraire du texte avec OCR à partir d'un PDF sous Linux ?

J'ai eu du succès avec le port Linux sous licence BSD du système Cuneiform OCR.

Aucun paquet binaire ne semble être disponible, vous devez donc le compiler à partir des sources. Assurez-vous que les bibliothèques ImageMagick C++ sont installées pour prendre en charge pratiquement tous les formats d'image d'entrée (sinon, ils n'accepteront que BMP).

Bien qu'il semble être essentiellement non documenté à part un bref fichier README, j'ai trouvé les résultats de l'OCR assez bons. La bonne chose à ce sujet est qu'il peut produire des informations de position pour le texte OCR au format hOCR, de sorte qu'il devient possible de remettre le texte dans la bonne position dans une couche cachée d'un fichier PDF. De cette façon, vous pouvez créer des fichiers PDF "recherchables" à partir desquels vous pouvez copier du texte.

J'ai utilisé hocr2pdf pour recréer des fichiers PDF à partir des fichiers PDF originaux contenant uniquement des images et des résultats OCR. Malheureusement, le programme ne semble pas prendre en charge la création de PDF multipages, vous devrez donc peut-être créer un script pour les gérer :

#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf

set -e

input="$1"
output="$2"

tmpdir="$(mktemp -d)"

# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"

# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
    base="${page%.tiff}"
    cuneiform -f hocr -o "$base.html" "$page"
    hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done

# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf

rm -rf -- "$tmpdir"

Veuillez noter que le script ci-dessus est très rudimentaire. Par exemple, il ne conserve aucune métadonnée PDF.


Voyez si pdftotext fonctionnera pour vous. Si ce n'est pas sur votre machine, vous devrez installer le paquet poppler-utils

sudo apt-get install poppler-utils 

Vous pouvez également trouver la boîte à outils pdf utile.

Une liste complète des logiciels pdf ici sur wikipedia.

Modifier : Puisque vous avez besoin Capacités OCR, je pense que vous devrez essayer une approche différente. (c'est-à-dire que je n'ai pas trouvé de convertisseur linux pdf2text qui effectue l'OCR).

  • Convertir le pdf en image
  • Scanner l'image en texte à l'aide des outils OCR

Convertir un pdf en image

  • gs :la commande ci-dessous doit convertir un pdf multipage en fichiers tiff individuels.

    gs -SDEVICE=tiffg4 -r600x600 -sPAPERSIZE=letter -sOutputFile=filename_%04d.tif -dNOPAUSE -dBATCH -- filename

  • Utilitaires ImageMagik :il existe d'autres questions sur le site SuperUser concernant l'utilisation d'ImageMagik que vous pourriez utiliser pour vous aider à effectuer la conversion.

    convertir foo.pdf foo.png

Convertir une image en texte avec OCR

  • GOCR :page Wikipédia
  • Ocrad :page Wikipédia
  • ocropus :page Wikipédia
  • tesseract-ocr :page Wikipédia

Extrait de la liste des logiciels OCR de Wikipédia


Google docs utilisera désormais l'OCR pour convertir vos documents image/pdf téléchargés en texte. J'ai eu beaucoup de succès avec.

Ils utilisent le système OCR qui est utilisé pour le gigantesque projet Google Books.

Cependant, il faut noter que seuls les PDF d'une taille de 2 Mo seront acceptés pour traitement.

Mettre à jour
1. Pour l'essayer, téléchargez un pdf de <2 Mo dans Google Docs à partir d'un navigateur Web.
2. Faites un clic droit sur le document téléchargé et cliquez sur "Ouvrir avec Google Docs".
...Google Docs convertira en texte et sortira dans un nouveau fichier avec le même nom mais le type de Google Docs dans le même dossier.


Linux
  1. Comment formater des documents académiques sur Linux avec groff -me

  2. gImageReader - Extraire du texte à partir d'images et de PDF sous Linux

  3. Comment convertir un PDF en JPG avec une ligne de commande sous Linux ?

  4. Comment sélectionner tout le texte d'un fichier avec nano ?

  5. Outils pour extraire du texte de powerpoint pptx sous Linux?

Comment afficher les données d'un fichier texte sous Linux

Comment sécuriser les serveurs Linux avec SE Linux

Comment travailler avec Nano Editor sous Linux

Comment extraire des adresses e-mail d'un fichier texte sous Linux

Comment convertir une page Web en PDF sous Linux

Comment ouvrir un PDF dans un terminal Linux