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

Développement Web avec .NET Discussion :

Comptage des mots dans un fichier PDF


Sujet :

Développement Web avec .NET

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Comptage des mots dans un fichier PDF
    Bonjour à tous , il s'agit de ma première participation au forum et je suis contente d 'en faire partie ,

    Ce qui est demandé est le calcule des mots dans un fichier pdf en utilisant vb.net

    Mon idée été de récupérer le contenu du fichier dans une chaine de caractère et faire dessus un simple calcul des mots .
    Le code ci dessous s 'exécute sans erreur mais pour un fichier PDF contenant 7 mots ça donne comme résultat 349 mots .

    Qu'en pensez vous ?

    Toutes vos remarques et idées sont les bienvenues .

    Merci par avance .
    ******************
    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
     
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Open a file for reading
            Dim FILENAME As String = Server.MapPath("test.pdf")
     
            'Get a StreamReader class that can be used to read the file
            Dim objStreamReader As StreamReader
            objStreamReader = File.OpenText(FILENAME)
     
            'Now, read the entire file into a string
            Dim contents As String = objStreamReader.ReadToEnd()
     
            ' Count word in Contents string "
            Dim WordCounter As Integer = UBound(Split(Trim(Replace(contents, Space(2), Space(1))))) + 1
            MsgBox(WordCounter)
            objStreamReader.Close()
        End Sub
    End Class
    **************

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Bonjour, tu as ouvert ton fichier "pdf" comme s'il s'agissait d'un fichier texte, comme si son contenu binaire était celui d'une chaîne de caractères. Essaye donc d'ouvrir un fichier ".pdf" dans un simple éditeur de texte (notepad par exemple) et tu comprendras le problème. En somme, ton code ordonne de traiter ton "pdf" comme un fichier "txt".

    Il va te falloir une bibliothèque comprenant le format pdf pour achever ce que tu veux faire.

    File.OpenText dans ton esprit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var content = LireContenuBinaire()
    var format = Examiner52345FormatsDifférentsPourEnDéduireLeBon(content)
    var texte = ExtraireTexte(format, content);
    var café = PréparerLeCafé(DemanderAuProgrammeurAvecOuSansSucre())
    return texte + café;
    File.OpenText dans la réalité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var content = LireContenuBinaire()
    return InterpréterContenuCommeTexteUTF8(content);

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci beaucoup de ta réponse surtout pour les exemples ! Une bibliothèque comprenant le format PDF existe-t-elle tu penses ? Car ça fait plusieurs heures que je cherche mais en vain .

    Merci de votre aide .

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Je t'en prie. Il en existe à la pelle, la plus connue est PDFSharp. Pour les recherches google, je te conseille d'utiliser "motclé c#" comme requête plutôt que "motclé dotnet" ou autres, on trouve typiquement plus de résultats ainsi...

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Comptage des mots dans un fichier PDF
    Bonsoir ,

    En faisant des recherches sur l’utilisation de la bibliothèque PdfSharp , j’ai trouvé la PDFBox qui est une bibliothèque qui permet entre autres de convertir un pdf to txt ,après avoir ajouté les références suivantes :
    (IKVM.GNU.Classpath.dll , IKVM.Runtime.dll et PDFBox-0.7.2.dll),
    ce qui m’a permet après de faire facilement mon calcul des mots . Et ça marche

    Merci encore une fois de ton aide .
    -------------------------------------------------
    Code :

    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
    25
    26
    27
    28
    29
    Imports org.pdfbox.pdmodel
    Imports org.pdfbox.util
    Partial Class _Default
     
        Inherits System.Web.UI.Page
     
     
        Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
     
        End Sub
     
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            'convert pdf file to txt file
            'Extract text from file
            Dim objDocument As PDDocument = PDDocument.load(Server.MapPath("test.pdf"))
            Dim objTextStripper As New PDFTextStripper()
            Dim pdftext As String = objTextStripper.getText(objDocument)
     
            ' Count word in pdftext string "
     
            Dim wordColl As MatchCollection = Regex.Matches(pdftext, "[\S]+")
            Console.WriteLine(wordColl.Count.ToString())
            MsgBox(wordColl.Count.ToString())
     
        End Sub
     
     
    End Class
    -------------------------------------------------

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

Discussions similaires

  1. compter l'occurence d'un mot dans un fichier pdf en arabe
    Par lamis2009 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 30/11/2010, 21h40
  2. [FPDI] Incorporéer des données dans un fichier PDF existant
    Par jalalnet dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/11/2010, 19h57
  3. supprimer des mots dans un fichier
    Par belgariel dans le forum Administration système
    Réponses: 1
    Dernier message: 30/10/2009, 12h01
  4. [VxiR2] Séparation des rapports dans pour fichier PDF
    Par zaza78 dans le forum Webi
    Réponses: 2
    Dernier message: 31/08/2009, 10h49
  5. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42

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