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é.
Réponses
Trop de publicités?J'ai obtenu de bons résultats avec le logiciel sous licence BSD Portage Linux de Cuneiform Système OCR.
Aucun paquetage binaire ne semble être disponible, vous devez donc le construire à partir des sources. Assurez-vous que les bibliothèques ImageMagick C++ sont installées afin de prendre en charge pratiquement tous les formats d'image en entrée (sinon, il n'acceptera que le format BMP).
Bien qu'il ne soit pas documenté, à l'exception d'un bref fichier README, j'ai trouvé que les résultats de l'OCR étaient assez bons. Ce qui est intéressant, c'est qu'il peut fournir des informations sur la position du texte OCR en hOCR de sorte qu'il devient possible de replacer le texte à la bonne place dans une couche cachée d'un fichier PDF. Vous pouvez ainsi créer des PDF "consultables" à partir desquels vous pouvez copier du texte.
J'ai utilisé hocr2pdf pour recréer des PDF à partir des PDF originaux contenant uniquement des images et des résultats de l'OCR. Malheureusement, le programme ne semble pas prendre en charge la création de PDF multipages, de sorte que vous devrez 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.
Voir si pdftotext vous conviendra. Si ce n'est pas le cas, vous devrez installer le paquet poppler-utils.
sudo apt-get install poppler-utils
Vous pouvez également trouver le boîte à outils pdf d'utilisation.
Une liste complète de logiciels pdf aquí sur wikipedia.
Edita: Puisque vous besoin En ce qui concerne les capacités d'OCR, je pense que vous devrez essayer une autre approche. (Je n'ai pas trouvé de convertisseur linux pdf2text qui fasse de l'OCR).
- Convertir le pdf en image
- Numériser l'image en texte à l'aide d'outils OCR
Convertir un pdf en image
-
gs : Le commande ci-dessous doit convertir des pdf multipages en fichiers tiff individuels.
gs -SDEVICE=tiffg4 -r600x600 -sPAPERSIZE=letter -sOutputFile=filename_%04d.tif -dNOPAUSE -dBATCH -- nom de fichier
-
Utilitaires ImageMagik : Il y a d'autres questions sur le site SuperUser concernant l'utilisation d'ImageMagik que vous pouvez utiliser pour vous aider à faire la conversion.
convertir foo.pdf foo.png
Convertir une image en texte avec l'OCR
- GOCR : Page Wikipédia
- Ocrad : Page Wikipédia
- ocropus : Page Wikipédia
- tesseract-ocr : Page Wikipédia
Tiré de l'article de Wikipédia liste des logiciels d'OCR
Google docs volonté maintenant utiliser l'OCR pour convertir en texte les documents image/pdf téléchargés. J'ai obtenu de bons résultats avec ce logiciel.
Ils utilisent le système de reconnaissance optique de caractères (OCR) utilisé pour les gigantesques Google Books projet.
Toutefois, il convient de noter que seuls les PDF d'une taille maximale de 2 Mo seront acceptés pour traitement.
Mise à jour
1. Pour l'essayer, téléchargez un pdf <2MB vers 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 sera converti en texte et sortira dans un nouveau fichier avec le même nom mais le type de Google Docs dans le même dossier.
Le meilleur moyen, et le plus simple, est d'utiliser pypdfocr
cela ne change pas le pdf
pypdfocr your_document.pdf
A la fin, vous aurez un autre your_document_ocr.pdf
comme vous le souhaitez avec un texte consultable. L'application ne modifie pas la qualité de l'image. L'ajout du texte en surimpression augmente légèrement la taille du fichier.
Mise à jour du 3 novembre 2018 :
pypdfocr
n'est plus pris en charge depuis 2016 et j'ai remarqué quelques problèmes dus au fait qu'il n'y a pas de mentorat. ocrmypdf
( module ) fait un travail similaire et peut être utilisé de la même manière :
ocrmypdf in.pdf out.pdf
Pour l'installation :
pip install ocrmypdf
o
apt install ocrmypdf
Geza Kovacs a créé un paquet Ubuntu qui est essentiellement un script qui utilise hocr2pdf
comme l'a suggéré Jukka, mais cela rend les choses un peu plus rapides à mettre en place.
De l'Ubuntu de Geza message du forum avec des détails sur le paquet...
Ajout du dépôt et installation sous Ubuntu
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
Exécution de l'ocr sur un fichier
pdfocr -i input.pdf -o output.pdf
Dépôt GitHub pour le code https://github.com/gkovacs/pdfocr/
- Réponses précédentes
- Plus de réponses