C'est en farfouillant pour la énième fois dans une pile de papelards que je me suis dit qu'il y en avait assez d'avaler de la poussière en rêvant de Ctrl-F, et qu'il était temps d'enfin faire quelque chose d'utile avec mes compétences de pisseur de code.
Ce qui a débuté comme quelques scripts mis bout à bout est aujourd'hui une solution intégrée de numérisation, à travers un client lourd, et de classement et de consultation, à partir d'un client Web. Le tout est distribué sous licence GPL.
Les idiosyncrasies de jeunesse du projet le rendent un poil difficile à utiliser tel quel (installation d'une base de données et d'un serveur Web, numérisation absolument pas testée sur un autre scanner que le mien...). Cependant, j'ai espoir qu'il soit utile en tout ou en partie, et qu'il motive d'autres développeurs à trouver des solutions à leurs problèmes quotidiens. Cela fait maintenant 2 ans que je numérise mes documents, et c'est un bonheur de retrouver une vieille facture en quelques clics pour comparer le prix de mon PC à l'époque, on d'extraire mon identifiant(TM) que cet organisme semi-administratif m'avait octroyé via une unique lettre il y a fort longtemps, et dont ils ont un besoin urgent là tout de suite.
Accessoirement, cher lecteur, connais-tu d'autres solutions libres pour résoudre ce même problème?
Sous le capot
Les documents sont enregistrés dans une base de données Postgresql, sous forme d'images JPEG encryptées.
Le client lourd est en C++ et utilise wxWidgets pour l'interface graphique, et libsane pour la numérisation.
Le client web repose sur le serveur Web Ocsigen, écrit en OCaml.
Quelques images du client lourd
Et quelques images du client léger
# projet interessant, mais j'ai une question
Posté par NeoX . Évalué à 10.
pourquoi ce format ?
c'est un format image, là ou un format PDF avec une passe en OCR pourrait permettre d'indexer un peu plus que sur les mots clefs.
[^] # Re: projet interessant, mais j'ai une question
Posté par Grunt . Évalué à 10.
Et/ou du PNG pour conserver la qualité originelle, et éviter d'imprimer des documents baveux.
THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
[^] # Re: projet interessant, mais j'ai une question
Posté par small_duck (site web personnel) . Évalué à 10.
J'ai généralement trouvé assez difficile de travailler avec du PDF. Le résultat de la numérisation étant une image, il est ardu de le réintégrer sous forme de texte dans un PDF sans dénaturer le document. Initialement, je passais tous mes documents via un OCR, pour en indexer le contenu dans la base, mais n'ayant pas trouvé de bonne bibliothèque C++, et utilisant au final surtout les tags, je n'ai pas intégré la fonctionnalité dans le client lourd.
Vis-à-vis du PNG, une fois de plus, c'est la numérisation qui cause souci: les blancs ne sont pas si blancs, beaucoup de documents ont des fonds bariolés, et au final un PNG prenait une place folle. En comparaison, un JPG suffisamment grand (150 dpi) reste lisible, et prend bien moins de place. Mon backup distant prend déjà suffisamment de temps comme ça :)
J'imagine que l'import pourrait être plus intelligent, et choisir le format le plus adapté pour chaque page.
[^] # Re: projet interessant, mais j'ai une question
Posté par BFG . Évalué à 4.
Je ne l'ai jamais essayé, mais j'étais tombé par hasard sur le projet unpaper qui m'avait semblé intéressant.
[^] # Re: projet interessant, mais j'ai une question
Posté par Paul . Évalué à 6.
Tu veux dire dénaturer visuellement ? Parce que justement en PDF il est possible d'avoir une couche "texte" invisible par dessous le jpeg, comme ça tu as le meilleur des deux mondes (il est même possible de faire correspondre les deux couches pour pouvoir sélectionner/copier le "texte" de l'image).
Ce qui est bien avec cette technique, c'est que tu obtiens une image dont le "texte" est indexable, et surtout ça n'est pas très grave si l'OCR se plante sur quelques mots/lettres vu que le visuel est l'original.
[^] # Re: projet interessant, mais j'ai une question
Posté par Anonyme . Évalué à 2.
tu as un exemple de ligne de commande ou d'outils pour le faire ? j'en ai toujours entendu parler, mais jamais pu le constater
[^] # Re: projet interessant, mais j'ai une question
Posté par Paul . Évalué à 1. Dernière modification le 19 décembre 2011 à 09:43.
Oui et non. Je connais DevonThink Pro Office, mais c'est Mac OS only.
Testé et approuvé pendant 2 ans de bons et loyaux services.
Essaie de chercher "searchable PDF" dans ton moteur préféré, ou "PDF image+text"
[^] # Re: projet interessant, mais j'ai une question
Posté par BFG . Évalué à 5.
Ou encore DjVu.
[^] # Re: projet interessant, mais j'ai une question
Posté par littlebreizhman . Évalué à 5.
En plus, la gestion des pdfs permettrait d'ajouter dans la base de données des factures ou autres documents que l'on reçoit désormais par mail et ainsi tout centraliser.
# Le roi est mort, vive le roi !
Posté par Kerro . Évalué à 10.
Encrypté: n.m vieilli Du verbe encrypter. Qui est enterré sous le chœur d'une église.
[^] # Re: Le roi est mort, vive le roi !
Posté par small_duck (site web personnel) . Évalué à 4.
Bien vu! Images chiffrées?
[^] # Re: Le roi est mort, vive le roi !
Posté par vladislav askiparek . Évalué à 10.
Tu ne sais pas où il stocke ses archives papier.
[^] # Re: Le roi est mort, vive le roi !
Posté par eastwind☯ . Évalué à 2.
dans la chancellerie ? (pour les archives temporaires dans les latrines :))
# Autres alternatives
Posté par Gui13 (site web personnel) . Évalué à 10.
Hello,
J'avais eu à peu près le même problème il y a quelques mois (scanner mes cours), et le forum m'avait sorti 2 logiciels assez proches:
Si jamais ça peut servir à quelqu'un...
Je vais tester le tien aussi !
[^] # Re: Autres alternatives
Posté par tontonrico . Évalué à 2.
J'ai trouvé aussi Pap'Rass qui fait la même chose.
Je vais sans doute tester aussi. Cela me semble plus efficace que la gestion "manuelle".
A +
# fiche de paie
Posté par asteroid . Évalué à 10.
Je cherche ma fiche de paie d'avril 2010, tu l'aurais pas numérisé ?
# Matériel
Posté par littlebreizhman . Évalué à 2.
Logiciel semble-t-il prometteur. Merci de le partager.
La numérisation de la paperasse est un point qui me travaille de plus en plus.
J'en profite pour poser une question matériel aux utilisateurs de ce genre de solutions.
Avec quoi numérisez vous vos documents ?
Un scanner à plat tout bête, une imprimante multifonction, autre chose ?
J'aimerais bien m'équiper mais la dernière fois que j'ai cherché (pas récemment), les scanners sous Linux, c'était pas trop ça...
Avez vous des modèles (récents) fonctionnant bien sous Linux à recommander ?
Ps : les screenshoots sont un peu petits pour bien se rendre compte de l'interface, un lien une version de plus grande résolution aurait été intéressant.
[^] # Re: Matériel
Posté par ɹǝıʌıʃO . Évalué à 2.
J'ai une HP Deskjet 6500. C'est un combiné imprimante jet d'encre et scanner du bas de la gamme professionnelle. Le tout est reconnu directement par la Debian stable, comme souvent avec HP. Je lui donne des cartouches de grande capacité pour un coût à la page très raisonnable, elle imprime en recto-verso, et elle a aussi quelques gadgets que je n'ai pas testés mais qui pourraient servir à d'autres (réseau, lecteur de cartes mémoire). En prime, par rapport aux modèles d'entrée de gamme grand public, j'ai vraiment l'impression d'avoir une imprimante sur mon bureau, pas une soucoupe volante pour enfant en bas âge.
[^] # Re: Matériel
Posté par Couz . Évalué à 1.
Pou ma part, j'ai une soucoupe volante de la marque HP, et ça fonctionne très bien en natif sous Ubuntu, et ce depuis... toujours en fait (sous ubuntu depuis 3 ans).
La qualité est suffisante pour numériser des documents. Bon, je ne sais pas ce qu'il en est pour d'autres modèles, mais ça prend un temps fou.
[^] # Re: Matériel
Posté par icyfemur . Évalué à 2.
J'ai une Brother MFC 490 CW, une imprimante jet d'encre multi-fonction, WiFi.
Fonctionne sous Linux, avec les pilotes fournis. L'installation est un peu tordue je trouve. Je sais que HP est en général mieux intégré sous Linux, mais sur cette Brother, j'avais la certitude d'après la doc (ce que n'était pas évident chez HP) de pouvoir photocopier PC éteint, et aussi scanner sur clef usb PC éteint.
Et au final c'est ce que je fais : je scanne tout directement en PDF sur une clef USB. Je trouve que c'est plus facile que via XSane, qui est compliqué.
[^] # Re: Matériel
Posté par Psychofox (Mastodon) . Évalué à 3.
En même temps si ton pc est allumé, sane c'est pas très compliqué avec la commande scanimage toute bête. Si tu comptes garder les réglages par défaut de ton scanner (ce que tu fais probablement avec le bouton de ta browser), tu n'as même aucun paramètre à donner à part éventuellement le nom du fichier.
Bref c'est un bête scanimage >/chemin/scan_
date'+%Y%m%d-%H%M%S'
.pnm (tu peux aussi piper vers pnmto[jpeg|png|cquetuveux] pour l'avoir dans le format de ton choix) que tu mets en raccourci sur ton bureau.C'est ce que j'ai fais pour scanner à la chaine des documents. J'avais hésité à investir dans un truc multifonction qui t'envoies un scan par email mais je me suis dit qu'il n'y avait aucune raison de jeter mon vieux scanner qui fonctionne bien. Ça part direct sur le dossier qui va bien sur mon nas (enfin mon fileserver), c'est donc bien plus pratique que d'utiliser une clé usb ou de recevoir par email le fichier qui m'imposerait un traitement supplémentaire.
Tu peux faire un deuxième bouton et piper vers lp pour avoir un mode "photocopie".
Et puis maintenant il y'a des applis comme simplescan qui sont très pratiques pour les cas où tu veux rogner ou faire d'autres petites corrections sans sortir la grosse berta.
[^] # Re: Matériel
Posté par barmic . Évalué à 2.
Ca dépend de la distance PC <-> scanner
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Matériel
Posté par Psychofox (Mastodon) . Évalué à 2. Dernière modification le 19 décembre 2011 à 22:34.
Dans le cas d'un pc fixe, qui serait assez con pour ne pas mettre le (ou en tout cas un) pc et le scanner dans la même pièce. Ne sont-ils pas tout deux des outils de bureau avant tout ?
Dans le cas d'un laptop, ben euh...faut déjà se déplacer pour aller mettre la feufeuille dans le scanner, alors c'est pas les 3 secondes de branchement d'un port usb qui vont changer quoique ce soit.
[^] # Re: Matériel
Posté par Axone . Évalué à 1.
Pour information, avec certaines HP officejet pro, il y a maintenant une fonction d'archivage numérique.
A l'aide d'un navigateur, tu te connectes au serveur web de l'imprimante. Tu y prédéfinis des profils d'archivage : nom de fichier (avec compteur après le nom), type de fichier (pdf, jpeg), la résolution, la couleur ou pas et surtout l'emplacement d'enregistrement qui est un répertoire partagé samba. Donc cela peut enregistrer directement sur un NAS.
Ensuite, il suffit de mettre son document dans l'imprimante et de juste sélectionner le profil voulu. Si l'imprimante a un chargeur de document recto-verso, c'est vraiment agréable pour archiver des documents sans allumer l'ordinateur.
Le seul point noir, est qu'il n'y a pas d'OCR. Si on utilise le logiciel HP sous windows (d'une lourdeur sans nom), il arrive à produire le pdf qui reste une image scannée, mais avec en plus, une "couche" contenant le texte reconnu par OCR. Pour faire des recherches par la suite, c'est un vrai plus.
[^] # Re: Matériel
Posté par flavien75 . Évalué à 1. Dernière modification le 19 décembre 2011 à 11:47.
J'utilise les scanner à plat canon Lide 30 et N1240U (assez ancien), il sont très bien supporté sous Linux, même mieux qui sous Windows Vista/Seven.
côté soft, xsane marche bien, contrairement au logiciel original du constructeur (sous windows), il faut malheureusement optimiser à main les paramètres quand on scanne des documents type fiche de paye ou facture (maximiser le contraste mais pas trop et ajuster la luminosité), une fois les bons paramètres trouvés (niveau de gris, luminosité à 120% et contraste à 140% dans mon cas), il suffit de sauvegarder le modèle.
Après pour le matos récent, la liste des modèles supportés par sane est accessible sur leur site
Les vrais naviguent en -42
[^] # Re: Matériel
Posté par Altor . Évalué à 2.
Brother. L'installation est en peut particulière, mais après tout marche (même le scan+envoi du fichier depuis le scanner vers le PC).
Si tu as beaucoup de chose à scanner, j'ai vu que pour 100€, ils proposent une multi-fonctions qui peut scanner un document de 15 pages en une seule fois. Il y a par exemple ce modèle.
# Merci beaucoup
Posté par barmic . Évalué à 5.
Merci beaucoup de partager ton travail,
Il semble que ton système soit déjà assez mature pour un logiciel à usage perso.
J'avoue ne mettre jamais penché là dessus bien que je me suis plus d'une fois dis que faire de la « GED » personnelle serait une bonne idée. Ta dépêche me donne l'occasion de me pencher un peu plus sur la question.
J'espère que tu aura des remontées, je te ferrais par par des voies plus directe de ce que je pense de ta solution quand je l'aurait testé d'ici la fin de semaine, mais déjà je trouve pertinent d'utiliser des mot-clefs pour décrire un document ça me semble à la fois très souple et suffisant (du moins pour mon usage), le fait d'avoir une interface web peut être très intéressante pour récupérer des document depuis n'importe où (« Mince, je dois passer fournir tel document après le boulot »).
Ce que je trouve dommage par contre c'est de stocker les fichiers dans la base de données. Pour moi la performance éventuelle gagner à stocker les fichiers dans une base de données est moins importante que le fait de pouvoir uploader mes fichier avec le client que je veux (oui je sais il faut pouvoir enregistrer les fichiers ensuite dans la base de données).
J'apprécie tes choix technique C++/Ocsigen/PostgreSQL qui sont différents des classiques PHP/MySQL, Python/MySQL que l'on trouve partout et ce même si Ocaml est pour moi encore un langage abscons (mais je me soigne).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Merci beaucoup
Posté par small_duck (site web personnel) . Évalué à 2.
Merci de tes encouragements. Les commentaires du journal m'ont ouvert les yeux sur tout un tas d'améliorations possibles, et, comme dirait Léonard, "mon cerveau fourmille tellement d'idées que si un tamanoir passait dans le coin, il me courrait derrière !" :)
Intéressante remarque sur le stockage des fichiers dans la base de données. Énormément de ressources sur le Web critiquent cette approche, qui tend à faire des bases énormes et peu flexibles. Mon choix reposait sur ma préférence d'avoir tous mes documents centralisés au même endroit, facilitant ainsi la sauvegarde sur mon serveur distant. Mais je conviens que c'est une approche qui ne va pas monter en charge indéfiniment. Peut-être pourrais-je implémenter une approche combinée.
Et OCaml, c'est bon, mangez-en!
[^] # Re: Merci beaucoup
Posté par barmic . Évalué à 3.
C'est un choix. piwigo fait ça aussi. Je crois que postgre peut avoir des tables de 32 Tio :
https://linuxfr.org/news/postgresql-90-est-sorti#comment-1164424
Tu as encore de la marge :)
Comment gère-tu les document à page multiples avec des images ?
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Merci beaucoup
Posté par small_duck (site web personnel) . Évalué à 1.
Chaque image est une page, et un document peut donc être composé de plusieurs images. Ça rend le code plutôt propre, mais cela n'est pas particulièrement pratique, par exemple, pour consulter ou imprimer un gros document, puisqu'il faut cliquer sur chaque vignette séparément pour afficher l'image en grand.
Je vais m'intéresser à DjVu, mentionné dans un commentaire un peu plus haut, et qui devrait m'aider à avoir une approche plus orientée document que page.
# Fort heureusement...
Posté par Fopossum . Évalué à 3.
Il n'y a pas besoin de wine pour s'en servir !
Sur ce, je vais me faire une p'tite boutanche de Haut-Marbuzet en lançant mon scanner.
cd /pub && more beer
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.