Comment extraire du texte d'un PDF qui n'a pas été construit avec un index? C'est tout le texte, mais je ne peux rien rechercher ou sélectionner. Je suis sous Kubuntu, et Okular ne possède pas cette fonctionnalité.
Comment extraire du texte d'un PDF qui n'a pas été construit avec un index? C'est tout le texte, mais je ne peux rien rechercher ou sélectionner. Je suis sous Kubuntu, et Okular ne possède pas cette fonctionnalité.
Réponses:
J'ai eu du succès avec le port Linux sous licence BSD du système OCR Cuneiform .
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 essentiellement tous les formats d'image en entrée (sinon, il n'acceptera que le format BMP).
Bien qu’il semble être essentiellement non documenté, à l’exception d’un bref fichier README, j’ai trouvé les résultats de l’OCR assez bons. L' avantage est qu'il peut générer des informations de position pour le texte OCR au format hOCR , de sorte qu'il devient possible de replacer le texte à la position correcte dans une couche masquée d'un fichier PDF. De cette façon, vous pouvez créer des fichiers PDF "interrogeables" à partir desquels vous pouvez copier du texte.
J'ai utilisé hocr2pdf pour recréer des fichiers PDF à partir des fichiers PDF d'origine avec image uniquement et des résultats OCR. Malheureusement, le programme ne semble pas prendre en charge la création de fichiers PDF de plusieurs pages. 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.
aspell check --mode=html "$base.html"
dans le script juste après avoir exécuté cunéiforme.
Voyez si pdftotext fonctionnera pour vous. Si ce n'est pas sur votre ordinateur, vous devrez installer le paquet poppler-utils
sudo apt-get install poppler-utils
Vous pouvez également trouver la boîte à outils pdf .
Une liste complète des logiciels pdf ici sur wikipedia.
Edit: Puisque vous avez besoin de capacités d’OCR, je pense que vous devrez essayer une tactique différente. (c.-à-d. que je ne pouvais pas trouver un convertisseur linux pdf2text qui fasse de l'OCR).
Convertir le pdf en image
gs: La commande ci-dessous devrait convertir un fichier PDF multipage en fichiers tiff individuels.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = lettre -sOutputFile = nom_fichier_% 04d.tif -dNOPAUSE -dBATCH - nom_fichier
Utilitaires ImageMagik : Il existe d'autres questions sur le site SuperUser sur l'utilisation d'ImageMagik pour vous aider à effectuer la conversion.
convertir foo.pdf foo.png
Convertir une image en texte avec OCR
Tiré de la liste de logiciels OCR de Wikipedia
Google docs utilisera désormais l' OCR pour convertir vos documents image / pdf téléchargés en texte. J'ai eu un bon succès avec elle.
Ils utilisent le système OCR utilisé pour le gigantesque projet Google Books .
Toutefois, il convient de noter que seuls les fichiers PDF d’une taille de 2 Mo seront acceptés pour le traitement.
Mise à jour
1. Pour l’essayer, téléchargez un fichier PDF de moins de 2 Mo dans Google Docs à partir d’un navigateur Web.
2. Cliquez avec le bouton droit sur le document téléchargé et cliquez sur "Ouvrir avec Google Documents".
... Google Docs convertira en texte et en sortie dans un nouveau fichier portant le même nom, mais Google Docs sera saisi dans le même dossier.
Geza Kovacs a créé un paquet Ubuntu qui est essentiellement un script utilisant hocr2pdf
les suggestions de Jukka, mais qui accélère l’installation.
Extrait du message de Geza sur le forum Ubuntu avec des détails sur le paquet ...
Ajout du référentiel et installation dans Ubuntu
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
Exécuter ocr sur un fichier
pdfocr -i input.pdf -o output.pdf
Dépôt GitHub pour le code https://github.com/gkovacs/pdfocr/
Le meilleur et le plus simple moyen de l'utiliser pypdfocr
est de ne pas changer le pdf
pypdfocr your_document.pdf
À la fin, vous en aurez une autre your_document_ocr.pdf
comme vous le souhaitez avec un texte interrogeable. L'application ne change pas la qualité de l'image. Augmente un peu la taille du fichier en ajoutant le texte de surimpression.
pypdfocr
n'est plus pris en charge depuis 2016 et j'ai remarqué quelques problèmes dus au fait que je n'étais pas mentalisée. ocrmypdf
( module ) fait un travail symiliaire et peut être utilisé comme ceci:
ocrmypdf in.pdf out.pdf
À installer:
pip install ocrmypdf
ou
apt install ocrmypdf
PDFBeads fonctionne bien pour moi. Ce fil de discussion " Convertir des images numérisées en un seul fichier PDF " m'a permis de démarrer rapidement. Pour numériser un livre noir et blanc, vous devez:
Dans le nouveau dossier, exécutez
pdfbeads * > ../Output.pdf
Cela placera le PDF assemblé, en mode OCR dans le répertoire parent.
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"
Asprise OCR Library fonctionne sur la plupart des versions de Linux. Il peut prendre une entrée et une sortie PDF en tant que recherche PDF.
C'est un paquet commercial. Téléchargez un exemplaire gratuit du logiciel Asprise OCR SDK pour Linux ici et lancez-le ainsi:
aocr.sh input.pdf pdf
Remarque: le «pdf» autonome spécifie le format de sortie.
Déni de responsabilité: Je suis un employé de la société produisant le produit ci-dessus.
Essayez Apache PDFBox pour extraire le contenu textuel d'un fichier PDF. Dans le cas d'images incorporées dans des fichiers PDF, utilisez CLI d'AbBYY FineReader Engine pour Linux pour extraire du texte.