Nettoyer un livre numérisé

L'outils principal que j'utilise pour nettoyer un livre numérisé s'appelle ScanTailor Advanced. Ce logiciel est capable de séparer les doubles pages, de les redresser, d'effacer les marges noires, et tout un tas d'autres choses intéressantes pour qui veut avoir un fichier le plus propre possible. Ce nettoyage fait, il sera possible d'envisager une reconnaissance de caractères (OCR).

Préparation

ScanTailor ne sait manipuler que les images jpg ou tiff. Si votre document est un pdf, il faut d'abord le convertir en images.

pdf2tifs

#! /bin/bash

# Convert a pdf into tif files
# usage: pdf2tifs [PDF]

if [ "$#" -gt 0 ];
then
    inputFile=$1
else
    # Try to be smart: if there is only one pdf, take it
    # else, ask a file name.
    nbOfPdf=$(ls -Ubad1 -- *.pdf | wc -l)
    if [ $nbOfPdf -gt 1 ];
    then
        echo "More than one pdf. Use `pdf2tifs PDF`."
        return 1
    else
        inputFile=$(ls -1 *.pdf | head -n 1)
    fi
fi

# TODO: check if lzw is the better compression (maybe it is too brutal)
pdftoppm -tiff -r 300 -tiffcompression lzw "$inputFile" page

Où placer ce script ? Par exemple dans ~/.local/bin/ (sous Ubuntu, ce dossier est automatiquement ajouté à votre PATH. Si vous venez de le créer : source ~/.profile.)

ScanTailor Advanced

Attention : bien installer ScanTailor Avdanced.

Après l'utilisation de ScanTailor

La version nettoyée de votre document se trouve dans le dossier out créé automatiquement par ScanTailor. Voici un script pour former un pdf.

tifs2pdf

#! /bin/bash

# Pack tifs in the out directory into a pdf                                                               
# Package needed: libtiff-tools
# usage: tifs2pdf
                                                                                                          
# Get the original pdf file name
originalFile="$(ls -1 *.pdf | head -n 1)"
                                                                                                          
cd out
tiffcp *.tif out.tif
tiff2pdf out.tif -o "../$(basename "$originalFile" .pdf)_clean.pdf"                                         
rm out.tif
cd ..