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

C# Discussion :

Traitement du texte d'un PDF via l'OCR


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Traitement du texte d'un PDF via l'OCR
    Bonjour,

    J’ai pour objectif de réaliser une application (c#, java, etc.) qui, à terme, sera capable de réaliser ces deux fonctions principales :

    - Extraire le texte d’un fichier PDF ou d’une image via la méthode de l’OCR.
    - Créer et enregistrer un modèle dans la base de données via les zones de sélections faites par l’utilisateur.

    Pour visualiser au mieux ce que je compte faire, je vous propose un « schéma » de cette application :



    Plus d’explications sur les zones :

    Quand l’utilisateur se trouve face à la zone de texte généré par l’application (à droite dans l’exemple), il a alors le choix de sectionner n’importe quel « bout » de texte qui l’intéresse pour le modèle (ce que doit contenir le modèle en gros).

    Dans l’exemple, il y aura dans le modèle une partie ‘titre’, ‘auteur’, etc.
    Le but étant par la suite de générer automatiquement le modèle (car il y a plusieurs PDF).

    Voici ma question :

    Quel langage est le mieux adapté à a réalisation de ce type d’application ? (j’avais déjà pensé au C# mais la sélection de zone par l’utilisateur me pose problème car je ne vois pas comment faire).

    Mon principal problème étant cette fameuse « sélection » (qui ouvre une fenêtre contenant la sélection et un champ vide à remplir par l’utilisateur, par exemple ‘titre’).

    Merci par avance de votre aide ! =)

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Extraire le texte d’un fichier PDF ou d’une image via la méthode de l’OCR.
    En ce qui concerne les Pdf, passer par l'OCR ne se justifierait que pour des images incluses dans le PDF.

    Un fichier Pdf est composé de glyphs (caractères) dont on connait les coordonnées en x,y. Il faut donc une bibliothèque Pdf comme PDFControls.net de Tall components qui permet :
    - de connaitre tous les glyphs d'une page
    - de visualiser une page.

    La selection d'une zone permet d'identifier les glyphs contenues dans cette zone. Reste à reconstituer le texte en identifiant les caractères situées dans une même ligne et en insérant des blancs en fonction des espacements entre les caractères.

    Pour matérialiser les zones sélectionnées, je conseillerai de "tracer" les rectangles verts en positionnant 4 panels en premier plan au dessus du contrôle de visualisation pdf.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    voir peut-être avec itextsharp qui est gratuit
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Avec itext, j'ai trouvé ce code Java, que l'on devrait pouvoir convertir pour ItextSharp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      public void parsePdf(String pdf, String txt) throws IOException {
              PdfReader reader = new PdfReader(pdf);
              PrintWriter out = new PrintWriter(new FileOutputStream(txt));
              Rectangle rect = new Rectangle(70, 80, 490, 580);
              RenderFilter filter = new RegionTextRenderFilter(rect);
              TextExtractionStrategy strategy;
              for (int i = 1; i <= reader.getNumberOfPages(); i++) {
                  strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
                  out.println(PdfTextExtractor.getTextFromPage(reader, i, strategy));
              }
              out.flush();
              out.close();
              reader.close();
          }
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour,

    J'ai fait la conversion car le sujet m’intéressait en C# ça donne ceci (et cela marche ;-))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void parsePdf(String pdf,string sFileNameOut)
    {
        StreamWriter sw = new StreamWriter(sFileNameOut); 
     
        iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pdf);
     
        iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(70, 80, 490, 580);
     
        iTextSharp.text.pdf.parser.RenderFilter[] filters = new iTextSharp.text.pdf.parser.RenderFilter[1];
        filters[0] = new iTextSharp.text.pdf.parser.RegionTextRenderFilter(rect);
     
        iTextSharp.text.pdf.parser.FilteredTextRenderListener strategy;
     
        for (int i = 1; i <= reader.NumberOfPages; i++)
        {
            strategy = new iTextSharp.text.pdf.parser.FilteredTextRenderListener(new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(), filters);
            sw.WriteLine ( iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, i, strategy));
            sw.WriteLine("");
            sw.WriteLine("");
        }
     
        sw.Close();
    }
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Dèv sous php d'un zoning de pdf
    Bonjour, bonsoir à tous,

    Mon cas est similaire à celui de Selven.
    Je recherche un moyen de procéder à la reconnaissance de zones prédéfinies sur un document pdf, le tout de préférence en PHP.

    Il y aura à priori paramétrages des zones à tester avec leur coordonnées sur un document Type.

    J'attends avec impatience une réponse de votre part ou au moins une piste à suivre afin de résolver mon problème.

    Merci d'avance.

  7. #7
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Personnellement je me suis arrêté avant le PHP 5 donc je ne saurais t'aider. Tu es dans le Forum .net mais peut-être que quelqu'un d'autre pourra t'aider.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/11/2009, 16h37
  2. [Photoshop]Traitement de texte sur un .jpg
    Par ghyosmik dans le forum Imagerie
    Réponses: 3
    Dernier message: 25/10/2005, 16h48
  3. Réponses: 9
    Dernier message: 04/03/2005, 13h58
  4. Réponses: 8
    Dernier message: 29/11/2004, 16h28
  5. Reinstaller le traitement de texte de OppenOffice
    Par pierrepierre dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 06/05/2004, 12h34

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