Journal Renommage et tri automatique de documents PDF en fonction du contenu

Posté par  . Licence CC By‑SA.
Étiquettes :
23
14
juil.
2021

Salut la compagnie,

Il m'arrive régulièrement, soit plus d'une fois par mois d'aller trier les pièces comptables ou autres documents collectés au fil du mois.

Pour m'y retrouver, et pour faciliter la recherche d'un document (pour moi-même ou ma comptable) j'ai pris assez vite l'habitude d'encoder dans le nom du fichier les infos importantes du document comme :
* la date
* le montant TTC
* organisme émetteur
* le numéro de facture
* …

Avec un nom du type YYYYmmdd_1234.00_org_emetteur_facture_1234.pdf

Au départ, je faisais cette opération fastidieuse qui me prenait presque une heure par mois.

Dans un deuxième temps, j'ai développé un script shell qui allait lire le contenu texte des fichiers PDF, et à l'aide de scripts awk je récupérais les infos intéressantes. Le problème de cette approche :
* Beaucoup script AWK assez peu lisible
* Traitement des dates assez fastidieuses
* Débogage compliqué
* Ajout du support trop long d'un nouveau document

Je me suis donc décidé samedi dernier à réécrire l'outil en python (je m'y suis mis depuis peu…) qui, à partir d'un fichier de configuration, va collecter les informations voulues pour définir le nouveau nom, et, dans une version future le classer au bon endroit. On peut même imaginer un service qui va observer le dossier de téléchargement et récupérer ce qu'il peut traiter.

Le fichier de configuration, qui est amené à évoluer régulièrement pour supporter un nouveau document, comporte une liste de règle (un par type de document) elle-même décomposée de la manière suivante :
* un attribut match qui peut être une chaîne de caractères ou une expression rationnelle permettant de rattacher celle-ci au document
* un attribut data_collector qui sert à collecter les données dans tableau de hachage (clés, valeurs) pour les réutiliser par la suite
* un attribut name_generator qui sert à générer le nouveau nom

Pour se faire une idée précise, j'ai mis à disposition un fichier de configuration d'exemple dans le dépôt.

Perspectives d'évolutions :
* classer le fichier dans le bon dossier
* observer un dossier en tant que service en arrière-plan
* réaliser un OCR si besoin
* …

J'ai fait ce petit journal dans le cas où ça intéresserait d'autres personnes…

Le projet est hébergé sur GitLab

Ce projet en est à son tout début même s'il est déjà fonctionnel : de mon côté, j’ai défini le support d'une vingtaine de type de document, et ce, en moins d'une heure, et l'appliquer sur un gros dossier de pièces comptables de l'année passée.

  • # Merci

    Posté par  (site Web personnel) . Évalué à 10.

    Merci pour le partage. Est ce que tu connais Paperwork? Il ne répond pas à tes besoins?

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Merci

      Posté par  . Évalué à 2. Dernière modification le 14/07/21 à 17:21.

      Je suis à 2 doigts de numériser ma vie papier et Paperwork me fait sérieusement de l'œil. Mais de ce que j'en ai compris, une fois numérisé, tu n'as pas vraiment de moyen de récupérer le PDF original (pour l'envoyer par e-mail par exemple).

      Mais ces sujets m'intéressent, j'ai 1 placard entier à numériser et un scanner recto/verso qui n'attendent que ça.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Merci

        Posté par  . Évalué à 4.

        tu n'as pas vraiment de moyen de récupérer le PDF original (pour l'envoyer par e-mail par exemple).

        Tu as les fichiers dans le dossier de travail. Sinon, tu peux facilement exporter tout un document ou seulement certaines pages en PDF, JPEG, TIFF…

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Merci

          Posté par  . Évalué à 2. Dernière modification le 14/07/21 à 17:23.

          Tu as les fichiers dans le dossier de travail.

          Et tu peux faire une recherche (facture de gaz 2020) et retrouver le PDF correspondant ? J'avais vu passer cette question, la réponse de l'auteur étant (de mémoire) "non, ce n'est pas une GED".

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

          • [^] # Re: Merci

            Posté par  . Évalué à 3.

            Tu peux faire une recherche dans l'outil et faire un export depuis l'outil.

            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

            • [^] # Re: Merci

              Posté par  . Évalué à 2.

              Ah !!!! Je vais regarder de bcp plus près alors. Merci !

              En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Merci

      Posté par  . Évalué à 1.

      Non pas du tout, j'irais jeter un coup d'œil dessus…

    • [^] # Re: Merci

      Posté par  . Évalué à 4. Dernière modification le 14/07/21 à 21:54.

      Après avoir jeté un coup d'œil sur le projet Paperwork, je constate que malgré certains atouts indéniables, il n'est pas adapté à mon cas.

      Paperwork est adapté pour faire du tri automatique d'une masse importante de document avec un système de tag, alors que de mon côté, j’ai besoin de récupérer des informations précises dans chacun de mes documents et de le renommer avec un schéma précis.

      • [^] # Re: Merci

        Posté par  (site Web personnel) . Évalué à 2.

        Les deux démarches sont intéressantes pour les besoins des gestionnaires et comptables des établissements publics d'enseignement. A ce stade je ne suis pas trop sûr que même moi (hahem, à tort ou à raison je suis considéré comme l'un des moins mauvais en informatique dans ce métier) je puisse utiliser Paperwork ou PDF doc sort concrètement sur le terrain, alors l'exposer comme une solution pour mes collègue est prématuré. Mais c'est l'avenir, je reste branché à l'écoute !

        Intendant, donc méchant, mais libre !

  • # Et paperless ?

    Posté par  . Évalué à 3.

    Il y a aussi paperless, tout se passe dans ton navigateur.

    Tu configures ton scanner pour envoyer les fichiers dans le dossier source configuré dans paperless, qui reconnaît le fichier et lui appliques ce que tu lui dis d'appliquer des tags, ce qui permet (comme avec paperwork) de facilement chercher tes documents.

    Je ne me souviens plus si les fichiers sont nommés ensuite…

  • # pdfgrep ?

    Posté par  . Évalué à 2.

    Bonjour,

    Je suis toujours frileux de basculer l'ensemble de mes documents en dématérialisé au travers d'un logiciel unique, de par le temps d'apprentissage, que l'historique à importer.
    Autant scanner sans OCR je ne vois que comme intérêt la sauvegarde.
    Pour le reste j'ai mon arborescence et quand je cherche quelque chose dans un pdf, un bon coup de pdfgrep ; ça prend regex, ça ressemble à grep, c'est barbu compatible.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.