Je numérise un document de bonne qualité. cette analyse est au format pdf.
Comment puis-je ajouter des informations ocr au pdf, afin qu'elles deviennent consultables? Par recherche, je veux dire que le but est que, lorsque vous visualisez le pdf avec evince, CTRL-F me permet en fait de rechercher dans le contenu pdf.
Fait ce que vous voulez et fournit des paquets deb Ubuntu. Il utilise tesseract comme moteur OCR. L'appel suivant ajoute le calque de texte à votre fichier PDF numérisé:
pdfsandwich scanned.pdf
Ce qui suit fait la même chose mais avec une autre langue (code ISO 639-2, package tesseract-ocr-LANGCODE
à télécharger) et en définissant la présentation:
pdfsandwich -verbose -lang spa -layout single scanned.pdf
Si vous avez une erreur, veuillez téléchargez la dernière version deb de Sourceforge .
Disclaimer: Je suis le développeur de pdfsandwich et je suis donc évidemment biaisé.
J'ai trouvé une solution non idéale mais très efficace.
J'utilise PDF X-Change Viewer via Wine. Il possède une fonctionnalité OCR qui ajoute un calque de texte au pdf existant basé sur une image.
Ainsi, vous pouvez rechercher et copier du texte à partir de cette couche invisible.
OCRmyPDF est une solution qui est facilement implémentable et fournit un fichier PDF de sortie avec la même qualité de fichier d’entrée plus une taille raisonnable.
Pour une solution en ligne de commande, vous pouvez utiliser pdfocr .
En bref, installez le logiciel:
$ Sudo apt-get install python-software-properties
$ Sudo add-apt-repository ppa:gezakovacs/pdfocr
$ Sudo apt-get update
$ Sudo apt-get install pdfocr
Ensuite, lancez pdfocr:
$ pdfocr -i scanned.pdf -o scanned.with.search.pdf
Cela a fonctionné pour moi sur Ubuntu 12.04 LTS.
Ceci est ma solution rapide et incorrecte basée sur les noms convert
, tesseract
, parallel
et pdftk
d'ImageMagick (tous disponibles sur les distributions basées sur Debian). C'est largement basé sur cet article de blog .
#!/bin/sh -ex
density=${2:-"300"} # default to 300 DPI if 2nd parameter is not given
convert -monitor -density "$density" "$1" -monochrome -compress lzw -alpha deactivate page_%05d.tif
parallel --bar "tesseract {} {.} pdf 2>/dev/null" ::: page_*.tif
pdftk page_*.pdf cat output "${1%.*}-ocred.pdf" compress
# Cleanup temp files
rm page_?????.tif page_?????.pdf
Pour tout le répertoire contenant des fichiers ppm, vous pouvez utiliser ce script ppm2ocrpdf.sh
#!/bin/sh
mkdir .pdf
for f in *.ppm; do
echo " Running convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf"
convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf
echo " Running tesseract -l deu "$f" "$f" pdf"
tesseract -l deu "$f" "$f" pdf
echo " Running pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf"
pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf
echo " Running rm "$f"ppm.pdf"
rm "$f"ppm.pdf
echo " Running rm "$f".pdf"
rm "$f".pdf
done
echo " Running pdftk *.pdf cat output ../outdocument.pdf"
pdftk ./.pdf/*.pdf cat output outOcrDocument.pdf
echo " Running rm ./.pdf/*.pdf"
rm ./.pdf/*.pdf
echo " Running rmdir .pdf"
rmdir .pdf
echo "Done"