Convertir un fichier pdf en txt

Il n’y a rien de plus frustrant d’avoir un fichier pdf et de ne pas pouvoir faire un copier coller dans un traitement de texte pour vous éviter une ressaisie laborieuse. J’ai trouvé la solution sous linux avec tesseract qui permet d’obtenir un fichier txt à partir d’un fichier pdf qui peut compter plusieurs pages. J’avais déjà présenté tesseract dans un article précédent pour faire de la reconnaissance de caractère à partir d’un scanner.

Il faut tout d’abord installer tesseract, je vous conseille de l’installer à partir des sources pour bénéficier de la dernière version et du package de langue française, le site officiel est par ici. Il faudra installer préalablement leptonica qui fournit un ensemble d’outils pour le traitement et l’analyse d’images ainsi qu’ImageMagick qu’on trouvera sur la plupart des distributions linux.

Pour le reste j’ai récupéré le script suivant à cette adresse.

#!/bin/bash
SCRIPT_NAME=`basename « $0 » .sh`
TMP_DIR=${SCRIPT_NAME}-tmp
OUTPUT_FILE=${SCRIPT_NAME}-output.txt

mkdir $TMP_DIR
cp $@ $TMP_DIR
cd $TMP_DIR

pdftoppm -r 600 * ocrbook

for i in *.ppm
do
BASE=`basename « $i » .ppm`
convert « $i » « ${BASE}.tif »
tesseract « ${BASE}.tif » « ${BASE} » -l fra
cat ${BASE}.txt | tee -a $OUTPUT_FILE
echo « [pagebreak] » | tee -a $OUTPUT_FILE
rm ${BASE}.*
done

mv $OUTPUT_FILE ..
rm *
cd ..
rmdir $TMP_DIR

Je l’ai appelé pdf2txt, il suffit de le lancer en tapant pdf2txt fichier.pdf et ça donne un résultat assez satisfaisant dans un fichier pdf2txt-output.txt.

Laisser un commentaire