30
mai 2013

Extraire le texte et les images d'un fichier pdf

Afin de remplir une base de données j'ai eu besoin d'extraire le contenue de plusieurs fichiers pdf de x pages. L'idée est de découper le fichier en un pdf par page, extraire les images, extraire le texte pour qu'une ligne corresponde à un fichier pdf. J'ai n'ai rien re-inventé et je me suis basé sur les outils pdfimages, pdfseparate et pdftotext.

Le code

#!/bin/bash
if [ $# -eq 0 ];
then
    echo "Il manque le nom du fichier"
    exit 1
else
    ROOT="/home/user/Bureau/extractPdf"
    outPdf="$ROOT/pdf"
    outText="$ROOT/text"
    outImg="$ROOT/images"

    echo -n "Numéro de la première page : "
    read firstPage
    echo -n "Numéro de la denière page : "
    read lastPage

    echo -n "Masque des fichiers jpg et pdf extrait : "
    read fileNameOut
    
    if [ -z $fileNameOut ];
    then
        echo "Masque de fichier vide"
        exit 1
    else
        echo "+-----------------------+"
        echo "| Extraction des images |"
        pdfimages -f $firstPage -l $lastPage -p  -j $1 $outImg/$fileNameOut

        echo "| Découpage du fichier  |"
        pdfseparate -f $firstPage -l $lastPage $1 $outPdf/$fileNameOut-%d.pdf
        
        echo "| Extraction des textes |"
        echo "+-----------------------+"        
        for FILE in `ls $outPdf`
        do
            pdftotext -raw -nopgbrk $outPdf/$FILE $outText/${FILE%%.*}.txt
            while read ligne
            do
                ligne=`echo $ligne | tr '\r\n' ';'`
                echo -n $ligne >> $outText/$fileNameOut-full.csv
            done < $outText/${FILE%%.*}.txt
            echo "" >> $outText/$fileNameOut-full.csv            
        done        
    fi
fi
exit 0

Administrateur système de métier mais surtout curieux de découvrir de nouvelles technos très orientées DIY. A mes heures perdues je fais de la photo avec toujours une petite envie d'intégrer des DIY sous forme de timelaps à base de raspberry.

Écrire un commentaire

Quelle est la première lettre du mot dmebyv ? :

Extraire le texte et les images d'un fichier pdf - Philippe Maladjian - Péripéties bucoliques d'un administrateur systèmes au royaume de la virtualisation, du stockage et accessoirement photographe à ses heures perdues