IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Comment contrôler si le pdf est défectueux ou pas [WD16]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut Comment contrôler si le pdf est défectueux ou pas
    Bonjour

    Alors tous les soirs je lance un timer qui créé dans un répertoire environ 1000 fichiers en format pdf.
    Je voudrais tester que les fichiers sont pas defectueux.

    alors l'idée c'est de mettre sur mon timer un champ activex
    le nom : ActiveX1
    activeX : Adobe PDF Reader

    code de l'initialisation du champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveXEvénement(envoiemail,ActiveX1,"OnError")
    ActiveXEvénement(envoiemail,ActiveX1,"OnMessage")

    lancement du traitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ResListeFichier = fListeFichier(ComplèteRep(sCheminRep)+"*.pdf", frRécursif+frInterruptible)
    // Pour chaque fichier trouvé
    POUR TOUTE CHAINE UnFichier DE ResListeFichier SEPAREE PAR RC
             ActiveX1>>LoadFile(UnFichier)
    FIN
    c'est un timer qui fonctionne le soir donc tout doit être silencieux.
    en faisant cela lorsque j'ai un fichier défectueux il s'arrete et adobe reader met un message. la je voudrais lorsque le message s'ouvre de le fermer puis d'envoyer un mail puis de lancer le pdf suivant. Mais je ne peux même plus lancer d'autre pdf si je ferme le message d'adobe manuellement?


    autre idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ResListeFichier = fListeFichier(ComplèteRep(sCheminRep)+"*.pdf", frRécursif+frInterruptible)
    // Pour chaque fichier trouvé
    POUR TOUTE CHAINE UnFichier DE ResListeFichier SEPAREE PAR RC
             SI LanceAppliAssociée(pNomFichier) ALORS
    	  Temporisation(50,tempoRien)
    	  gfclKillProcess:KillProcessByName("AcroRd32.exe") //ferme adobe reader
             SINON
    	  envoieMail()	
             FIN
    FIN
    sauf que le problème, si le fichier adobe reader est defectueux LanceAppliAssociée est toujours vrai et c'est adobe reader qui ouvre un message disant que le fichier est défectueux. donc la il faudrait choper le message mais comment? J'ai regarder si ca rajoutait un processus dans ma liste de processus. J'ai les mêmes processus si le pdf est bon ou pas.

    Alors si vous avez une idée ou si vous voyez comment faire avec mes idées n'hésistez pas.

    Le but verifier si le pdf est defectueu ou pas

    Cordialement LAW

  2. #2
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Bonjour,
    as tu essayé de passer par la fonction :
    Cette fonction permet de récupérer les caractéristiques d'un fichier image ou d'un fichier PDF.

    [EDIT]

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res est une chaîne = InfoBitmap("D:\temp\FichierInvalide.pdf")
    dans ce cas res vaut "BAD<TAB><TAB><TAB>"

    si les 3 premiers caractères sont <> "PDF" alors le fichier est invalide.
    Dans mon test, j'ai pris un fichier Zip dont j'ai changé l'extension en PDF.
    Il faut maintenant vérifier que cette technique fonctionne avec un PDF défectueux.
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    WOAW ca fonctionne je me suis pris la tête et dans des test de folie pour rien

    l'information renvoie BAD quand le fichier est defectueu.

    un grand merci à L.nico

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut merci
    merci beaucoup pour cette solution, elle fonctionne du "feu de dieu".

    Pour controler vraiment j'ai ajouté le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Res est une chaine = InfoBitmap("tonfichier.pdf")
    Res=Remplace(Res,TAB,"<tab>")
    SI ResAttribut <> "BAD<tab><tab><tab>" ALORS
    	Info("Fichier ok")
    SINON
    	Info("Fichier défectueux")
    FIN
    Merci encors.

  5. #5
    Membre actif
    Avatar de alexeyk
    Homme Profil pro
    test
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : test

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 200
    Points
    200
    Par défaut
    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sRes = InfoBitmap("tonfichier.pdf")
    bErreurPdf = (sRes[[1 a 3]]<>"PDF") // Vrai si tonfichier.pdf n'est pas un PDF
    Alex

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Comment contrôler si un texte est contenu dans un mot
    Par pierrot10 dans le forum Langage
    Réponses: 6
    Dernier message: 28/01/2014, 16h39
  2. [PHP 5.2] Comment contrôler si un URL est valide
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 15/06/2009, 14h08
  3. comment savoir si un dossier est vide ou pas?
    Par Amissan dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 16/02/2007, 13h31
  4. comment savoir si un contrôle est mulitiline ou pas ?
    Par Ekimasu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 10h28
  5. comment savoir si une fenetre est agrandi ou pas ?
    Par EssaiEncore dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo