47 votes

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

Comment extraire du texte d'un PDF qui n'a pas été construit avec un index ? Il n'y a que du texte, mais je ne peux pas faire de recherche ni sélectionner quoi que ce soit. J'utilise Kubuntu, et Okular n'a pas cette fonctionnalité.

2voto

scruss Points 822

PDFBeads fonctionne bien pour moi. Ce fil " Convertir des images numérisées en un seul fichier PDF "m'a permis d'être opérationnel. Pour numériser un livre en noir et blanc, il faut.. :

  1. Créez une image pour chaque page du PDF ; l'un ou l'autre des exemples gs ci-dessus devrait fonctionner.
  2. Générer une sortie hOCR pour chaque page ; j'ai utilisé tesseract (mais notez que Cuneiform semble mieux fonctionner).
  3. Déplacez les images et les fichiers hOCR dans un nouveau dossier ; les noms de fichiers doivent correspondre, de sorte que file001.tif nécessite file001.html, file002.tif file002.html, etc.
  4. Dans le nouveau dossier, exécutez

    pdfbeads * > ../Output.pdf

Cela placera le PDF assemblé et OCRé dans le répertoire parent.

2voto

tolima Points 21

Un autre script utilisant tesseract :

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

set -e

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

tmpdir="$(mktemp -d)"

# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -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}"
    tesseract "$base.tiff" $base
done

# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output

rm -rf -- "$tmpdir"

2voto

Rick B. Points 71

Bibliothèque OCR Asprise fonctionne sur la plupart des versions de Linux. Il peut prendre des PDF en entrée et les restituer sous forme de PDF de recherche.

Il s'agit d'un paquet commercial. Télécharger une copie gratuite de Asprise OCR SDK pour Linux ici et l'exécuter de cette manière :

aocr.sh input.pdf pdf

Remarque : l'option "pdf" spécifie le format de sortie.

Clause de non-responsabilité : je suis un employé de la société qui fabrique le produit ci-dessus.

1voto

Praveen Kumar K R Points 111

Essayer Apache PDFBox pour extraire le contenu textuel d'un fichier PDF. Dans le cas d'images incorporées dans des fichiers PDF, utilisez la fonction ABBYY FineReader Engine CLI pour Linux pour extraire du texte.

1voto

Dmitry Somov Points 161

A partir de juin 2021 la meilleure solution OCR que j'ai trouvée est gImageReader. J'ai utilisé la version 3.2.3 du dépôt Ubuntu 18.04. Il utilise tesseract v.4.00.00aplha comme back-end.

Il semble être bien entretenu, possède une interface graphique agréable qui n'est pas surchargée, et dispose de toutes les fonctionnalités nécessaires pour des tâches relativement modestes. Je l'utilise pour reconnaître des fichiers PDF numérisés de plusieurs pages, parfois d'une qualité très modeste (<100 dpi, avec des artefacts). Il fait très bien son travail. Il s'intègre parfaitement aux dictionnaires OpenOffice/LibreOffice. Tous les fichiers de langage tesseract et script doivent être installés (cela peut être vérifié via Synaptic).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X