[UDF] Infos et recherche dans les PDF avec XPDF

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

[UDF] Infos et recherche dans les PDF avec XPDF

#1

Message par jguinch »

Suite à ce sujet qui m'a bien intéressé, voici quelques fonctions qui vont permettre de :
- récupérer des infos sur les fichier PDF
- convertir un fichier PDF en fichier texte
- recherche une chaîne de caractères dans un fichier PDF

Ces fonctions se basent sur l'utilisation de deux programmes de XPDF, qui sont pdfinfo et pdftotext.
Vous pouvez télécharger les outils XPDF ici

Je n'ai pas mis d'exemple, je pense que les fonctions sont simples à appréhender.
► Afficher le texteXPDF.au3
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] Infos et recherche dans les PDF avec XPDF

#2

Message par mikell »

Super... :wink:
Rapport au sujet évoqué, en cas de dysfonctionnement la première chose à vérifier est que le nom du fichier PDF ne contient pas de caractères spéciaux
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [UDF] Infos et recherche dans les PDF avec XPDF

#3

Message par jguinch »

euuh, j'ai pas compris l'histoire des caractères spéciaux... :?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] Infos et recherche dans les PDF avec XPDF

#4

Message par mikell »

aulus a écrit :Je pense que les dysfonctionnements provenaient du nom de fichier long du pdf qui me servait de test.
N'ayant pas testé je ne peux que conjecturer que le nom de son fichier contenait peut-être des caractères susceptibles de perturber la commande :?:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Neutro
Niveau 1
Niveau 1
Messages : 9
Enregistré le : mar. 25 févr. 2014 11:57
Status : Hors ligne

Re: [UDF] Infos et recherche dans les PDF avec XPDF

#5

Message par Neutro »

Merci beaucoup, très utile cet UDF !

Voici un exemple de script qui recherche le texte contenu dans un fichier Excel dans un fichier PDF et écrit des choses dans le fichier Excel en fonction de s'il l'a trouvé ou non :

Code : Tout sélectionner


#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.10.2
 Author:         Neutro
 Date: 5 mars 2014

 Script Function:
    Recherche d'une chaine de caractères dans un fichier PDF à partir d'un fichier Excel

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#requireadmin

#include <xpdf.au3>
#Include <Excel Rewrite.au3>
#include <File.au3>
#include <String.au3>

$organigramme = ""

$prog_excel = ""

$prog_excel = _Excel_Open(False)

$workbook = _Excel_BookOpen($prog_excel, "D:\Informatique\liste.xlsx)

_XPDF_ToText(@scriptdir & "\Organigramme.pdf", @scriptdir & "\Organigramme.txt")

$organigramme = Fileread(@scriptdir & "\Organigramme.txt")

SplashTextOn("Recherche dans l'Organigramme","Traitement du login : " & @CRLF & @CRLF ,300,90,-1,-1, 16)

for $i = 2 to 270 step 1 ;pour chaque cellule dans la colonne A

    $cellule = _Excel_RangeRead($workbook, $workbook.Activesheet, "A" & $i) ; récupération du contenu de la cellule

    controlsettext("Recherche dans l'Organigramme", "Traitement du login : ", "Static1", "Traitement du login : " & @CRLF & @CRLF & $cellule)

    $recherche_PDF = StringInStr($organigramme, stringleft($cellule,1) & ". " & StringMid($cellule, 2))

    if $recherche_PDF <> 0 Then

        _Excel_RangeWrite($workbook, $workbook.Activesheet, "OUI", "D" & $i) ;si on trouve le nom dans l'organigramme, on écrit "OUI" dans la colonne correspondante du fichier Excel

        $prog_excel.Activesheet.range("D" & $i).Font.ColorIndex = 10

        $prog_excel.Activesheet.range("D" & $i).Font.Bold = True

        $prog_excel.Activesheet.range("D" & $i).HorizontalAlignment = -4108 ; center

    else

        ;sinon on essaye de voir si le prénom de la personne est un nom composé du style "J.C. Deschamps"

        $recherche_PDF = StringInStr($organigramme, stringleft($cellule,1) & "." & Stringmid($cellule, 2, 1) & ". " & StringMid($cellule, 3))

        if $recherche_PDF <> 0 Then

            _Excel_RangeWrite($workbook, $workbook.Activesheet, "OUI", "D" & $i) ;si on trouve le nom dans l'organigramme, on écrit "OUI" dans la colonne correspondante du fichier Excel

            $prog_excel.Activesheet.range("D" & $i).Font.ColorIndex = 10

            $prog_excel.Activesheet.range("D" & $i).Font.Bold = True

            $prog_excel.Activesheet.range("D" & $i).HorizontalAlignment = -4108 ; center

        else

            _Excel_RangeWrite($workbook, $workbook.Activesheet, "NON", "D" & $i) ;si on trouve le nom dans l'organigramme, on écrit "NON" dans la colonne correspondante du fichier Excel

            $prog_excel.Activesheet.range("D" & $i).Font.ColorIndex = 3

            $prog_excel.Activesheet.range("D" & $i).Font.Bold = True

            $prog_excel.Activesheet.range("D" & $i).HorizontalAlignment = -4108 ; center

        EndIf


    EndIf

next

_Excel_Close($prog_excel)

 
Répondre