1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

[WD 22] - OCR sur un PDF avec Puma.NET

Discussion dans 'Resources' créé par Advita, Fev 19, 2018.

Tags:
  1. Advita

    Advita Active Member
    MEMBRE WX

    Inscrit:
    Jan 13, 2018
    Messages:
    71
    J'aime reçus:
    107
    Bonjour,
    J'ai trouvé ses bouts de codes sur différents forums traitant de windev et L'OCR.
    Cela fonctionne mais demande un peu d'amélioration.

    Télécharger le puma.net :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Procédez à l'installation de Puma.NET (pour windows 64bits installer PumaNET(x86).msi)
    Répertoire C:\Program Files (x86)\Puma.NET et mettre les droits pour un control total des utilisateurs

    Dans un nouveau projet dans windev

    Copier C:\Program Files (x86)\Puma.NET\Assemblies\dibapi.dll dans le répertoire [exe] du projet
    - ajouter au projet les 2 assemblages puma.interop et Puma.net (répertoire C:\Program Files (x86)\Puma.NET\Assemblies)
    - créer une fenêtre avec un objet image invisible ( ou pas ) et ayant comme nom IMG_pdf
    - créer un bouton avec le code clic suivant:
    sCheminFichier est une chaîne UNICODE = fSélecteurImage("", "", "Sélectionnez une image...")
    Trace(ConvPdf(sCheminFichier))
    - Ajouter les 2 procédures locales à la fenêtre:
    Code (Text):

    PROCEDURE ConvPdf(ficPDF)

    InfoImage est une chaîne
    res est une chaîne
    Fictmp est une chaîne=fFichierTemp("IMG")
    x est entier=PDFNombreDePages(ficPDF)
    i est un entier

    InfoImage = InfoBitmap(ficPDF)
    IMG_pdf..Largeur=Val(ExtraitChaîne(InfoImage,2,TAB))
    IMG_pdf..Hauteur=Val(ExtraitChaîne(InfoImage,3,TAB))
    IMG_pdf=ficPDF

    POUR i=1 A x
         IMG_pdf..NuméroPage=i
         dSauveImageJPEG(IMG_pdf,Fictmp)
         SI i=1 ALORS
              res = OCRFic(Fictmp)
         SINON
              res = res+"------------------------------------------------------------------"+RC+OCRFic(Fictmp)
         FIN
         fSupprime(Fictmp)
    FIN
    RENVOYER res

     
    La deuxième :
    Code (Text):

    PROCEDURE OCRFic(sCheminFichier)

    res est une chaîne

    SI PAS fFichierExiste(sCheminFichier) ALORS RENVOYER ""

    MonPuma est un PumaPage ()
    MonPuma.FileFormat = PumaFileFormat.TxtAscii
    MonPuma.Language=PumaLanguage.French
    MonPuma.LoadImage(sCheminFichier)
    QUAND EXCEPTION DANS
         res =MonPuma.RecognizeToString()
    FAIRE
         Erreur("Erreur OCR")
    FIN
    MonPuma.Dispose()
    RENVOYER res

     
     
    Tags:
  2. PoloLeFou

    PoloLeFou Member

    Inscrit:
    Fev 6, 2018
    Messages:
    17
    J'aime reçus:
    27
    trop cool, je vais tester ca :) merci
     
    Advita apprécie ceci.
  3. sgug73

    sgug73 New Member

    Inscrit:
    Jan 22, 2018
    Messages:
    4
    J'aime reçus:
    8
    C'est bizarre, ce post me rappelle quelque chose: peut-être un des miens sur acam;)
     
    estoriquespace, joker et Tixa aiment ça.
  4. Advita

    Advita Active Member
    MEMBRE WX

    Inscrit:
    Jan 13, 2018
    Messages:
    71
    J'aime reçus:
    107
    Bonjour sgug73, oui c'est fort possible. Comme je le dit en début de post, je n'ai pas écrit le code moi même.
     
    estoriquespace, suenodesign et joker aiment ça.
  5. raheek_makhtoom

    raheek_makhtoom New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    7
    J'aime reçus:
    14
    Bonjour , j'ai tester mais ca pas marcher du tout Renvoi vide

    Si quelqu'un a réussi , please dit nous comment

    Merci ))
     
    joker apprécie ceci.
  6. sgug73

    sgug73 New Member

    Inscrit:
    Jan 22, 2018
    Messages:
    4
    J'aime reçus:
    8
    Bonjour raheek_makhtoom,
    Il faut faire, à lettre, tout ce qu'il y a marquer ci-dessus .
    Pour PumaNET(x86).msi, il faut utiliser cette version:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    joker apprécie ceci.
  7. Advita

    Advita Active Member
    MEMBRE WX

    Inscrit:
    Jan 13, 2018
    Messages:
    71
    J'aime reçus:
    107
    Ou cas ou il existe aussi une fonction dans windev beaucoup plus simple mais moins complète :
    PDFVersTexte()

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    suenodesign apprécie ceci.
  8. raheek_makhtoom

    raheek_makhtoom New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    7
    J'aime reçus:
    14
    Bonjour , j'ai tout essayer mais retourn toujours vide
    je vous demande plus e détails svp
    Cordialement
     
  9. raheek_makhtoom

    raheek_makhtoom New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    7
    J'aime reçus:
    14
    a l'ouverture de projet , m'affiche cet erreur

    windev 20 66p sous windows 7 64 bit

    **********************************************

    Erreur lors de l'importation de l'assemblage <dibapi.dll>.
    Vérifiez que le fichier importé est bien un assemblage .NET.
    Vérifiez que la version du framework .NET installé est au moins égale à la version du framework .NET utilisé pour compiler cet assemblage.
    Si l'assemblage référence d'autres assemblages, vérifiez qu'ils sont présents dans le même répertoire ou dans le GAC (répertoire <Windows>\assembly).
    Echec de l'ouverture des metadata de l'assemblage <C:\Program Files (x86)\Puma.NET\Assemblies\dibapi.dll>.
    Erreur -2147024885

    **********************************************

    Informations techniques

    Que s'est-il passé ?
    Erreur lors de l'importation de l'assemblage <dibapi.dll>.
    Vérifiez que le fichier importé est bien un assemblage .NET.
    Vérifiez que la version du framework .NET installé est au moins égale à la version du framework .NET utilisé pour compiler cet assemblage.
    Si l'assemblage référence d'autres assemblages, vérifiez qu'ils sont présents dans le même répertoire ou dans le GAC (répertoire <Windows>\assembly).
    Echec de l'ouverture des metadata de l'assemblage <C:\Program Files (x86)\Puma.NET\Assemblies\dibapi.dll>.
    Erreur -2147024885

    Code erreur : 3696001
    Niveau : erreur fatale (EL_FATAL)

    Dump de l'erreur du module 'WDBRW.DLL' (20.0.248.:relievedface:.
    Identifiant des informations détaillées (.err) : 3696001
     
  10. sgug73

    sgug73 New Member

    Inscrit:
    Jan 22, 2018
    Messages:
    4
    J'aime reçus:
    8
    Bonjour raheek_makhtoom,

    ton erreur vient du fait que tu as ajouté dibapi.dll en tant qu' assemblage .net et il ne faut pas.
    Tu dois seulement ajouter les 2 assemblages suivant à ton projet: puma.interop et Puma.net.
    Puis tu dois copier "à la mano" C:\Program Files (x86)\Puma.NET\Assemblies\dibapi.dll dans le répertoire [exe] du projet
    Je viens de tester en windev 20 et tout fonctionne (ci-joint le projet en windev 20)

    A+
     

    Fichiers attachés:

Partager cette page

Chargement...