• [^] # Re: Petit scrip que j'ai commencé

    Posté par . En réponse au message OCR pdf vers pdf. Évalué à 2. Dernière modification le 18 septembre 2013 à 18:39.

    Voici le script corrigé pour plus d'une page :p

    Disclaimer : je suis pas du tout expert en bash, c'est même mon deuxième script.

    #!/bin/sh
    DPI=150
    CONVERT_BIN="/usr/bin/convert" #imagemagick
    TESSERACT_BIN="/usr/bin/tesseract" #tesseract
    HOCR2PDF_BIN="/usr/bin/hocr2pdf" #exactimage
    PDFINFO_BIN="/usr/bin/pdfinfo" #poppler
    OPTIMIZE2BW_BIN="/usr/bin/optimize2bw" #exactimage
    PDFJOIN="/usr/bin/pdfjoin" #texlive
    for EXTCMD in "$CONVERT_BIN" "$HOCR2PDF_BIN" "$PDFINFO_BIN" "$OPTIMIZE2BW_BIN" "$PDFJOIN" "$TESSERACT_BIN" ; do
     [ -x "$EXTCMD" ] || {
     echo "$(basename 0ドル): commande externe '$(basename "$EXTCMD")' absente." >&2
     exit 2
     }
    done
    OUTPUT="$(dirname "1ドル")/out_$(basename "1ドル")"
    # dossier temporaire 
    while true ; do
    TMPDIR="/tmp/$(basename 0ドル).$$.$RANDOM"
     [ ! -e "$TMPDIR" ] && mkdir -m 700 -p "$TMPDIR" && break || exit 2
    done
    #cp 1ドル 1ドル.bak
    echo 1ドル
    NBR_PAGES=$($PDFINFO_BIN "1ドル" | grep Pages: | sed -E 's/(.*) (\d*)/2円/g')
    echo $NBR_PAGES
    for i in `seq 1 $NBR_PAGES`;
    do 
    echo "Page $i sur $NBR_PAGES"
     # Convertion en tif...
     eval "$CONVERT_BIN -blur 0 -density 600 -depth 8 -quality 95 \"${1}\"\[$(($i - 1 ))\] $TMPDIR/page$i.tif"
     # "Optimisation du tif pour OCR...
     eval "$OPTIMIZE2BW_BIN -i $TMPDIR/page$i.tif -o $TMPDIR/page${i}_bis.tif"
     # OCR en cours...
     eval "$TESSERACT_BIN $TMPDIR/page${i}_bis.tif $TMPDIR/output -l fra"
     # Réduction DPI =>$DPI...
     eval "$CONVERT_BIN -density $DPI -flatten +matte $TMPDIR/page$i.tif $TMPDIR/page$i.tif"
     # Intégration du texte dans le pdf...
     eval "$HOCR2PDF_BIN -i $TMPDIR/page$i.tif -o $TMPDIR/$(basename $OUTPUT)$i.pdf < $TMPDIR/output.txt"
     # rm $TMPDIR/output.txt
    done
    eval $PDFJOIN $TMPDIR/*.pdf --no-tidy -o $OUTPUT
    eval "rm –fr $TMPDIR"