Extraire les données d'un lot de pdf indexables

cancel
Showing results for 
Search instead for 
Did you mean: 
proote
Member II

Extraire les données d'un lot de pdf indexables

Bonjour à tous,

Je suis tombé sur Alfresco il y'a quelques jours, et je cherche si ce bel outil pourrait me rendre service, aujourd'hui j'ai un besoin "ponctuel" mais si ça fonctionne ça pourrait se développer sur différents usages dans l'entreprise (pour l'instant il y'a un frein psychologique sur la GED, mais avec un premier pas réussi ça peut vite se débloquer)

J'ai un lot de quelques milliers de fichiers pdf, contenant des tas de valeurs, c'est structurés à chaque fois de la même manière (un peu comme les factures d'un fournisseur), c'est du pdf "indexable" (le pdf est généré par un logiciel, ça n'est pas de l'image sortie d'un scanner), le texte est sélectionnable, c'est propre.
A force de recherches j'ai compris qu'on peut lier Alfresco avec un OCR, mais je me demande si c'est utile dans le cas d'un pdf indexable ?

Est-ce qu'avec Alfresco "seul" je pourrai définir des zones à analyser dans le fichier pdf pour en extraire les données ? (et les mettre dans une bdd, ou dans un fichier, peu importe, je ne pense pas que la difficulté se trouve là)

Merci Smiley Happy
5 Replies
jayjayecl
Active Member II

Re: Extraire les données d'un lot de pdf indexables

Bonjour,

A priori, si le PDF est déjà indexable, je pense que de l'OCR pure basique ne permet pas ce que vous recherchez.
En outre, Alfresco ne peut en effet pas, par défaut, reconnaître des zones de documents et en extraire des données.
Il vous faut un outil spécialisé dans cette tâche de "reconnaissance de forme".
proote
Member II

Re: Extraire les données d'un lot de pdf indexables

Bonjour,
Pour info j'avais lu votre réponse, je vous en remercie :wink:
Pour l'instant je n'ai pas trouvé de logiciel qui fasse ce que je veux sans sortir l'artillerie lourde, mais j'ai trouvé des logiciels qui transforment des pdf en txt, ensuite à coup de scripts et d'expressions régulières je devrai réussir à sortir les valeurs souhaitées :
- PDFMate PDF Converter, dans sa version gratuite
- Xpdf (http://www.foolabs.com/xpdf/) => avec celui-là, en ligne de commande, j'obtiens les meilleurs résultats.

Petit exemple avec xpdf:
C:\xpdfbin-win-3.03\bin64>pdftotext.exe -f 1 -l 3 -raw -eol dos "c:\test\source\110825DD.pdf"
pdftotext version 3.03
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdftotext [options] <PDF-file> [<text-file>]
  -f <int>          : first page to convert
  -l <int>          : last page to convert
  -layout           : maintain original physical layout
  -fixed <fp>       : assume fixed-pitch (or tabular) text
  -raw              : keep strings in content stream order
  -htmlmeta         : generate a simple HTML file, including the meta information
  -enc <string>     : output text encoding name
  -eol <string>     : output end-of-line convention (unix, dos, or mac)
  -nopgbrk          : don't insert page breaks between pages
  -opw <string>     : owner password (for encrypted files)
  -upw <string>     : user password (for encrypted files)
  -q                : don't print any messages or errors
  -cfg <string>     : configuration file to use in place of .xpdfrc
  -v                : print copyright and version info
  -h                : print usage information
  -help             : print usage information
  –help            : print usage information
  -?                : print usage information
cnerger
Member II

Re: Extraire les données d'un lot de pdf indexables

Bonjour,

Si vous document sont nativement numérique vous n'avez rien a faire , vous pouvez directement les intégrer dans alfresco , car il y aura une indexation full-text et ils seront accessible a travers la recherche.

Cependant , si vous cherchez à structurer un peu plus vos metadatas , je vous conseil de créer des champs de metas personnalisés , et d’intégrer vos metas à travers pdftk (technique utilisé en prod pour plus de 15Kdoc/jour)

https://forums.alfresco.com/fr/viewtopic.php?f=11&t=5113

La structuration des métas sera inévitable passé un certain nombre de documents.

Pour exemple , nous avons dans l'un de nos content-store +/-15 million de pdf , dans le cas d'un recherche sur un terme contenu dans le document , la recherche peut durer jusqu’à 15 secondes , par contre en utilisant les 25 champs de metadata personnalisé , nous effectuons une recherche en moins de 2s (environ 800ms en moyenne).

En fonction de votre réponses , je vous apporterais les informations supplémentaire sur pdftk .

Ps: pour information, je ne travail que sur des serveur linux , donc il vous faudra peut être adapter en conséquence .

Bonne journée
proote
Member II

Re: Extraire les données d'un lot de pdf indexables

Bonjour,
Je ressors mon sujet d'outre-tombe parce que je me remets plus sérieusement dans le sujet, je viens de lire votre solution et faire quelques essais: c'est exactement ce qu'il me fallait Smiley Happy
pdftk permets effectivement d'ajouter très facilement des meta-données à un pdf:

un fichier instructions.txt contenant les metadata à ajouter:
InfoKey: test
InfoValue: 1234

pdftk in.pdf update_info instructions.txt output out.pdf

Et c'est tout, on retrouve les nouvelles metadata dans le pdf (visibles simplement dans adobe reader, ou avec une commande "pdftk out.pdf dump_data")
Cela gratuit et sous GPL: http://www.pdflabs.com/docs/pdftk-cli-examples/

Avant ça je fais un petit xpdf/pdftotext pour récupérer (par ex.) un numéro de compte client dans le fichier pdf, ce qui me fait une metadata à ajouter.
=> en 2012 je cherchais à travailler sur des pdf "texte", cas le plus simple, mais aujourd'hui en 2013 j'ai besoin de bosser avec du pdf numérisé, je vais devoir trouver un OCR. Heureusement les documents sont produits en interne, on peut donc y mettre ce qu'on veut: d'après mes lectures, un code barre serait plus simple à OCRisé => tesseract étant un OCR pour le texte, je m'en vais chercher un OCR libre pour codes-barres (et si je trouve pas en libre, AB**Y CLI OCR For Linux semble sympa, je vais déjà faire des essais avec une licence trial …)

Ensuite combiné à votre "custom-metadata extractor", je devrai pouvoir tout automatiser et faire indexer les documents par Alfresco.

edit: trouvé vite fait pour les codes barres avec gocr, à tester:
tifftopnm.exe barcode.tif > barcode.pnm
gocr050.exe -i barcode.pnm -o barcode.txt
proote
Member II

Re: Extraire les données d'un lot de pdf indexables

Je repasse par ici pour un petit complément:
J'ai abandonné pdftk pour l'écriture des meta-données, car tout simplement il ne sait pas en ajouter si le pdf n'en a encore aucune. Je me suis un peu arraché les cheveux avant de comprendre pourquoi ça fonctionnait avec mon pdf de test (qui avait déjà quelques meta-données en vrac) mais pas avec mes pdf issus d'un scan (aucune meta-donnée d'origine)

En php j'utilise zend_pdf pour gérer les meta-donnés des pdf:
<php>function __autoload($class)
{
   require_once('Zend/Loader.php');
   Zend_Loader::loadClass($class);
}
$pdf = Zend_Pdf::load($fichier);
$pdf->properties['agence'] = $codeagence; // exemple de meta
$pdf->save($fichier);

// relecture des meta
foreach($pdf->properties as $meta_key => $meta_value)
{
   echo 'properties: '.$meta_key.' - '.$meta_value,PHP_EOL;
}
</php>


Ces meta-données sont de type "document_info" dans le pdf: y a-t-il un réel intérêt à utiliser du xmp ?