Utilisateur:Denis Gagne52/Tesseract — Djvu
Apparence
Description
[modifier]Cette procédure fonctionne uniquement sous Windows. Elle permet, à partir de fichiers tiff (notamment ceux découpés avec ScanTaylor) de produire un fichier djvu incluant une « océrisation » référencée sur chaque mot. Ainsi, dans l’espace page, un double clic sur tout mot du wikitexte fera apparaître un liséré rouge à l’endroit où se trouve ce mot sur l’image numérisée.
Autres solutions disponibles mais sans positionnement du texte :
- OCR with Tesseract (obsoleted by ocrodjvu) : script en langage perl
- Équivalent Python de OCR with Tesseract : script converti par @ElioPrrl
Liens utiles :
- Tutoriel sur Wikisource
- Tutoriel pour exploitation de Tesseract à partir de Python
- ocrodjvu - OCR for DjVu files sur Linux
La solution proposée sous Windows « vanille » repose sur les fichiers suivants : BacAProjet.vbs et tiff2djvu.cmd dont le contenu apparaît sur cette page.
Fichier BacAProjet.vbs
[modifier]' UTILITÉ : ' Permet de lancer tiff2djvu.cmd afin d’océriser un livre en format djvu ' ' INSTALLATION (os : windows de Microsoft): ' Prérequis : Tesseract, pdf2djvu (écrire leur emplacement dans tiff2djvu.cmd) ' Installation : copier BacAProjet.vbs et tiff2djvu.cmd dans un répertoire dédié ' Utilitaires : DjvuToy, DjView ' ' PROCÉDURE À SUIVRE : ' 1 — Créer un répertoire Projet ' 2 — Ajouter à Projet un sous-répertoire images ' 3 — Copier dans images les pages du livres en format tiff (*.tif) ' 4 — Dans DjvuToy (onglet MAKER), sélectionner le répertoire images ' 5 — Appuyer sur GO pour créer images.djvu dans Projet ' 6 — Glisser le répertoire Projet sur l’icone de SourceAProjet.vbs ' 7 — Patienter le temps nécessaire pour produire images-ocr.djvu ' 8 — Ouvrir image-ocr.djvu dans DjView.exe valider par une recherche de ' mot sur la dernière page du livre ' ' CONCEPTION : ' Conçu et rédigé par Denis Gagne52 pour utilisation dans Wikisource fr Dim i Dim wsh Dim fileObj Dim foldObj Dim hRes Dim res Dim fileName Dim strErrorCode Dim comspec ' Si opéré sous "WScript", relancer sous cscript If InStr(1, WScript.FullName, "WScript.exe", 1) <> 0 Then Set wsh = CreateObject("WScript.Shell") wsh.Run("cscript //I """ & WScript.ScriptFullName & """ """ & _ Wscript.Arguments.Item(0) & """"), 1, false Else strPath = Wscript.Arguments.Item(0) Set objShell = CreateObject("WScript.Shell") Set wsh = CreateObject("Shell.Application") comspec = objShell.ExpandEnvironmentStrings("%comspec%") objShell.currentdirectory = strPath Res = 0 Set foldObj = wsh.Namespace(strPath & "\images") For Each fileObj In foldObj.Items if StrComp(right(foldObj.GetDetailsOf(fileObj, 0), 3),"tif",1) = 0 then hRes = Mid(foldObj.GetDetailsOf(fileObj, 175), 2, 3) if res < cint(hRes) then res = cint(hRes) fileName = foldObj.GetDetailsOf(fileObj, 0) end if end if Next WScript.Echo fileName & vbCrLf & _ "Résolution hor. max. : " & cstr(res) strErrorCode = objShell.Run("%comspec% /c " & _ replace(WScript.ScriptFullName,WScript.ScriptName,"") & _ "tiff2djvu.cmd " & strPath & " " & cstr(res), 1, false) if strErrorCode <> "" then WScript.Echo strErrorCode Set objShell = nothing set whs = nothing WScript.Echo "Fin du traitement" WScript.Echo "Appuyer sur Enter pour terminer. . ." End if
Fichier de commandes tiff2djvu.cmd
[modifier]rem Commandes lancées a partir de BacAProjet.vbs rem Écrit par Denis Gagne52 pour utilisation dans Ws fr @echo off Setlocal EnableDelayedExpansion set strPathTesseract=%programfiles%\Tesseract-OCR set strPathPdf2djvu=D:\Outils\App\pdf2djvu-0.9.17 %~d1 cd "%~f1" echo ======================================================== echo === OCERISATION A PARTIR DES FICHIERS TIFF (%2 PPP) === echo ======================================================== dir /s/b "%~f1\images\*.tif" > files.txt "%strPathTesseract%\tesseract.exe" files.txt ocronly -c textonly_pdf=1 -l fra --dpi %2 pdf "%strPathPdf2djvu%\pdf2djvu.exe" -o ocr.djvu --dpi=%2 ocronly.pdf echo ====================================== echo === TRANFERT DU TEXTE DANS LE DJVU === echo ====================================== set /A npages=0 copy images.djvu images-ocr.djvu for /R %%i in (*.tif) do ( set /A npages += 1 "%strPathPdf2djvu%\djvused.exe" ocr.djvu -e "select !npages!; print-txt" > ocrpage.txt "%strPathPdf2djvu%\djvused.exe" images-ocr.djvu -e "select !npages!; set-txt ocrpage.txt" -s ) echo ============================ echo === Nombre de pages : %npages% === echo ============================ pause