Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 11-01-2020 18:49:49

phlinux
Membre
Distrib. : Jessie
Noyau : 4.9
(G)UI : Openbox (+Rox+Feh)
Inscription : 09-05-2009

Retour d'expérience sur ocrfeeder version du gitlab (pour sid)

Bsr,

Un des problèmes de la version "officielle" debian est l'impossibilité de générer un document multipages. L'export en odt est également mal exploitable car le texte se retrouve dans une sorte de sur-couche, un objet en fait .

La page du projet https://gitlab.gnome.org/GNOME/ocrfeeder/

Pour commencer on peut récupérer les éléments sources sur gitlab. Allons-y.

# pour récupérer les sources
apt install git


Se placer dans le rep de compil (par exemple ~/ocr), puis:

git clone https://gitlab.gnome.org/GNOME/ocrfeeder
cd ocrfeeder
./autogen.sh
make

C'est tout, si aucun message d'erreur n'apparaît. Il peut manquer quelques paquets; en voici une liste non-exhaustive

gnome-common
libgtk2.0-dev    # fournit glib-gettext
yelp-tools        # fournit yelp.m4
python3-enchant
python3-sane
python3-reportlab
python3-odf
python3-gtkspellcheck

Une fois la compil réussie on peut lancer ocrfeeder

~/ocr/ocrfeeder/bin/ocrfeeder

Normalement ça fonctionne, et cette version ne comporte pas les bug indiqués plus haut.

Mais pour être plus propre, toujours à partir du répertoire des sources on peut en profiter pour construire un deb.
Pour ça voir le tuto du wiki DF sur cette page https://debian-facile.org/atelier:chant … uet-simple

Pour résumer ce tuto:

# paquets de construction
apt install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev checkinstall
# make déjà fait donc
checkinstall

J'ai rencontré quelques petits soucis notamment celui de devoir créer des répertoires à la main. C'est peut être dû au fait que je sois dans un chroot.

L'étape de configuration (./configure --les-options-qui-vont-bien) serait à tester avant de passer le make; dans un prochain post peut être.

Donc on se retrouve avec un paquet installé et bien sûr désinstallable.

Le seul petit souci est que les dépendances ne sont pas "liées" au paquet; si c'est possible ce serait une des modif à apporter à la construction

A plus

Dernière modification par phlinux (16-01-2020 14:38:42)


Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

#2 16-01-2020 15:01:43

phlinux
Membre
Distrib. : Jessie
Noyau : 4.9
(G)UI : Openbox (+Rox+Feh)
Inscription : 09-05-2009

Re : Retour d'expérience sur ocrfeeder version du gitlab (pour sid)

Finalement la version du paquet que j'ai construit ne fonctionne pas, ou a fonctionné et ne marche plus.
Retour vers le script python généré avec ./autogen.sh; mais bien qu'il fonctionne, le traitement est très long surtout si on a bon nombre de pages à traiter.

Donc le plus rapide, et le moins agaçant, est d'utiliser la version cli. Voici un exemple de script, à améliorer, mais qui permet de lancer le traitement et d'aller faire les courses pendant ce temps.

#!/bin/bash

# commande de base
COM=~/ocr/ocrfeeder/bin/ocrfeeder-cli

REP1=/dossier_des_images_à_traiter

REP2=/dossier_des_textes_produits

# listage des images
LISTEIMG=`ls -1 $REP1/ | sort -n`

# lcd du traitement
for IMG in $LISTEIMG; do
    $COM -i $REP1/$IMG -f TXT -o $REP2/$IMG.txt
done


Malgré tout une erreur concernant Gtk s'affiche au démarrage du script

/home/phlinux/ocr/ocrfeeder/bin/../src/ocrfeeder/util/lib.py:24: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk

Passer les arguments demandés dans l'interpréteur Python3 n'a rien changé

(sidchroot)ph@phlinux:~$ python3
Python 3.7.6 (default, Dec 19 2019, 09:25:23)
[GCC 9.2.1 20191130] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> gi.require_version('Gtk', '3.0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'gi' is not defined
>>> from gi.repository import Gtk
__main__:1: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.

La solution est d'indiquer ces mêmes arguments dans le script python qui regimbe. C'est lui : ~/ocr/ocrfeeder/src/ocrfeeder/util/lib.py auquel on va ajouter ce qu'il faut 

# original
import os
import mimetypes
from PIL import Image
import tempfile
from gi.repository import Gtk
import math
from .constants import *
import sane
import tempfile
import locale
import xml.etree.ElementTree as etree
from .log import debug
[.........]
# modifié
import os
import mimetypes
from PIL import Image
import tempfile
import gi     # ajout
gi.require_version('Gtk', '3.0')     # ajout
from gi.repository import Gtk
import math
from .constants import *
import sane
import tempfile
import locale
import xml.etree.ElementTree as etree
from .log import debug



Voilà, voilà....


Pages perso : feh, omegat, udisks, passerelle, schroot vraiment transparent

Hors ligne

Pied de page des forums