:PROPERTIES:
:ID: c7dc82c6-5d38-4e31-884b-acf29328db58
:END:
#+title: conversion-de-pdf-en-image-et-ocr
#+post_ID: 191
#+post_slug: conversion-de-pdf-en-image-et-ocr
#+post_url: https://www.ciperbliss.com/2016/conversion-de-pdf-en-image-et-ocr
#+post_title: Conversion de pdf en image et OCR
#+post_tags: conversion, format, pdf, jpg, png, contrat, documents
#+post_type: post
#+post_mime_types:
#+post_guid: undefined
#+post_status: publish
#+post_date_published: <2016-05-11T19:25:05>
#+post_date_modified: <2020-08-03T11:55:32>
#+post_index_page_roam_id: fa7f2a8c-2b94-4e42-bb4c-25c026ed7ff9
#+retrieved_from_db_at: <2024-11-18 16:25:08>
* Conversion de pdf en image et OCR
:PROPERTIES:
:CUSTOM_ID: conversion-de-pdf-en-image-et-ocr
:END:
[[https://www.clubdesmonstres.com/best/img/disc_world9jpg.jpg]]
[[https://imagemagick.org][ImageMagick]]
permet de convertir des tas de fichiers en des tas d'autres. Il est
fourni de base dans pas mal de
[[https://fr.wikipedia.org/wiki/Distribution_Linux][distributions
linux]].convertir un pdf en un jpg par page de 300dpi
c'est aussi simple que lancer cette commande:(dans un
terminal, dans le dossier de votre fichier pdf, par exemple, mon dossier
de Téléchargements)
#+begin_src prettyprint
convert -density 300 -quality 100 monFichierPDF.pdf mesFichiersJpg.jpg
#+end_src
Et boum! aussitôt plopent dans le même dossier des
jpg mesFichiersJpg (1).jpg pour chaque page.Trop
magique.L'option *-density 300* donne une résolution
de 300dpi.L'option *-quality 100* compresse la sortie
au meilleur de sa qualité.Il faut nommer le fichier
d'entrée et celui de sortie, j'aurai pu marquer mesFichiersJpg.png ça
aurait fait des vrais png, mais ça supporte aussi des tas d'autres
formats.
** Option de sécurité d'ImageMagick
:PROPERTIES:
:CUSTOM_ID: option-de-sécurité-dimagemagick
:END:
Il est possible que vous ayez une version
d'ImageMagick avec des restrictions de conversion qui ont été mises en
place pour des raisons de sécurité à une époque où GhostScript avait un
problème, corrigé depuis. Si la commande convert ne veut pas convertir
votre pdf, regardez dans la config du fichier de
police:=sudo editor /etc/ImageMagick-7/policy.xml=(le
dossier peut se nommer ImageMagick-6 ou autre selon votre version), et
changez la ligne concernant les pdf:
#+begin_src prettyprint
#+end_src
En ceci:
#+begin_src prettyprint
#+end_src
Relancez votre terminal et ça devrait bien vouloir
convertir votre pdf en jpg.
** Une commande en alias de bash
:PROPERTIES:
:CUSTOM_ID: une-commande-en-alias-de-bash
:END:
Vous pouvez vous en faire un alias dans votre fichier
/~/.bash_aliases/
#+begin_src prettyprint
alias pdf2jpg='convert -density 300 -trim -quality 100'
#+end_src
Ainsi vous pourrez lancer:
#+begin_src prettyprint
pdf2jpg machin.pdf machin.jpg
#+end_src
Et paf, ça fait des images de jolie qualité pour
chaque page.
** Le cube qui sait lire
:PROPERTIES:
:CUSTOM_ID: le-cube-qui-sait-lire
:END:
Et donc voilà, il arrive aussi qu'on vous file un pdf
contenant un contrat ou un texte (avec ou sans images) qui serait bien
plus efficace en format texte pour y faire des recherches par exemple.
vous avez bien entendu autre chose à faire de votre vie que de recopier
tout le texte. aint nobody got time for
that.[[http://static.skynetblogs.be/media/80918/4017077379.jpg]]
#+begin_example
Il convient donc d'utiliser un soft qui sait faire de l'Optical Character Recognition, de la reconnaissance de caractères optiques.
#+end_example
[[https://pbs.twimg.com/profile_images/3311637316/fa2e60c43dea540aa029bd9f9596d674_400x400.png]]Le
Tesseract, ce n'est pas un cube produisant une énergie infinie au pays
d'Iron Man, c'est un soft capable de lire des caractères dans une image
et de pondre un texte en conséquence. Bien sûr il faut relire le texte
ensuite pour corriger quelques typos, mais il fait déjà un boulot
impressionnant.installez le avec son extension pour
le français avec apt-get:
#+begin_src prettyprint
sudo apt-get install tesseract-ocr tesseract-ocr-fra
#+end_src
Une fois que c'est fait revenons à nos animaux
laineux.Vous avez donc plein de fichiers jpg dans un
dossier.Dans un terminal, mettez vous dans le dossier
en question.Nous allons donc faire une boucle sur
tous les fichiers du dossier courant se terminant par jpg, les lire et
en ressortir dans un fichier page_truc.txt pour chaque
image.
#+begin_src prettyprint
a=0for i in $(ls -v *.jpg); do echo "$i page_${a}.txt" # on affiche ce qu'on fait tesseract $i page_${a}.txt let a=a+1done
#+end_src
l'option -l fra sert à dire qu'on traite un texte en
françaiset maintenant on concatène les sorties de
chaque image en un seul fichier
#+begin_src prettyprint
cat page_* > all_pages.txt
#+end_src
Et vous pourrez maintenant avoir un texte sur lequel
vous pouvez faire une recherche intégrale avec votre éditeur de texte
préféré, à la recherche de l'arnaque contractuelle qui va
bien.Astuce de l'OCR trouvée sur
[[https://doc.ubuntu-fr.org/tesseract-ocr][la doc
ubuntu]]Enjoy!