Aller au contenu

Utilisateur:Denis Gagne52/Tesseract — Djvu

La bibliothèque libre.

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 :

Liens utiles :

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