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 :

Extraire le texte d'un pdf avec PdfBox en C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut Extraire le texte d'un pdf avec PdfBox en C#
    Bonjour,

    Je voudrai extraire le texte d'un document pdf en utilisant PdfBox en C#, dans le code que j'ai utilisé j'ai un problème j'ai une erreur que je n'arrive pas à résoudre avec cette partie de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Text.Encoding fileInEnc = MyFileStream.GetFileEncoding(fileIn);
    --> Le nom 'MyFileStream' n'existe pas dans le contexte actuel .

    Pourtant j'ai installé toutes les bibliothèques nécessaire!!
    Qu'est ce que je doit faire pour résoudre ce problème ??

    Merci.

  2. #2
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Tu as bien ces deux lignes dans ton code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileStream MyFileStream;
    MyFileStream = new FileStream("fichier.txt", FileMode.Open);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    En fait quand j'ajoute cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileStream MyFileStream;
    j'ai une autre erreur :

    'System.IO.FileStream' ne contient pas une définition pour 'GetFileEncoding' et aucune méthode d'extension 'GetFileEncoding' acceptant un premier argument de type 'System.IO.FileStream' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)

  4. #4
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Postes voir la liste de tes imports.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Voilà les "using" que j'ai utilisé dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using org.pdfbox.pdmodel;
    using org.pdfbox.util;
    using System.IO;

  6. #6
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Ca semble correct!
    Quand j'aurai VS sous la main et si tu postes ton code, j'essaierai de voir ce qui cloche même si je suis loin d'être un expert.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Merci pour tes réponses, voilà mon 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using org.pdfbox.pdmodel;
    using org.pdfbox.util;
    using System.IO;
     
     
    namespace consoleapp
    {
        class program
        {
            static void Main(string[] args)
            {
     
                string path = @"C:\Utilisateur\nadi\Documents\Visual Studio 2008\Projects\PdfBox1\";
                string fileIn = path + "aaa.pdf";
                string fileOut = path + "x.txt";
     
                try
                {
                    // Get file encoding  
                    //MyFileStream = new FileStream("sometext.txt", FileMode.Open);
                    FileStream MyFileStream;
                    System.Text.Encoding fileInEnc = MyFileStream.GetFileEncoding(fileIn);
     
                    // Read from PDF.  
                    ReadFile1(fileIn, fileOut, fileInEnc);
                    Console.ReadLine();
                }
     
                catch (System.IO.IOException ioe)
                {
                    Console.WriteLine("error " + ioe);
                }
                Console.ReadLine();
            }
     
            public static void ReadFile1(string fileIn, string fileOut, System.Text.Encoding fileInEnc)
            {
                using (FileStream fs = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    using (BinaryWriter bw = new BinaryWriter(fs)) //,Encoding.Default))
                    {
                        bw.Write(ParseUsingPDFBox(fileIn));
                    }
                }
            }
     
            private static string ParseUsingPDFBox(string input)
            {
                PDDocument doc = PDDocument.load(input);
                PDFTextStripper stripper = new PDFTextStripper();
                return stripper.getText(doc);
            }
        }
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Points : 558
    Points
    558
    Par défaut
    sans vouloir dire une bêtise, dans le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Get file encoding  
    //MyFileStream = new FileStream("sometext", FileMode.Open);
     
    FileStream MyFileStream;
    System.Text.Encoding fileInEnc = MyFileStream.GetFileEncoding(fileIn);
    il manque une ligne (signalée par roster, et qui figure en commentaire dans ton code, pas au bon endroit)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyFileStream = new FileStream("sometext.txt", FileMode.Open);
    et donc, cette partie-là au complet devrait ressembler à ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Get file encoding  
    FileStream MyFileStream = new FileStream("sometext.txt", FileMode.Open);
    System.Text.Encoding fileInEnc = MyFileStream.GetFileEncoding(fileIn);

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    J'ai toujours la même erreur : pas de définition pour GetFileEncoding
    Je crois que je doit ajouter un bibliothèque mais je sais pas laquelle !!

  10. #10
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par nadabb Voir le message
    J'ai toujours la même erreur : pas de définition pour GetFileEncoding
    Je crois que je doit ajouter un bibliothèque mais je sais pas laquelle !!
    D'où il sort le GetFileEncoding()?

    'System.Text.Encoding fileInEnc' attend un type d'encodage genre Encoding.GetEncoding( "utf-8" ).

    Si tu as la source du code que tu utilises, cela pourra peut-être aider.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    J'ai modifié le code en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Text.Encoding fileInEnc = MyFileStream.GetFileEncoding(fileIn);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Text.Encoding fileInEnc = Encoding.GetEncoding(fileIn);
    j'ai plus d'erreurs mais j'ai un avertissement disant que l'exception ArgumentException n'a pas été géré, et que :

    'C:\Utilisateur\nadi\Documents\Visual Studio 2008\Projects\PdfBox1\aaa.pdf' n'est pas un nom de codage pris en charge.

    J'ai pas compris ce que veux dire !!
    Merci pour ton aide.

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/11/2013, 16h00
  2. extraire du texte d'un pdf
    Par Nulenprogra dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 25/01/2010, 21h33
  3. [FPDF] Extraire le texte d'un pdf
    Par SandraG dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 08/10/2009, 14h48
  4. Extraire pdf avec PdfBox
    Par nadabb dans le forum C#
    Réponses: 0
    Dernier message: 08/06/2009, 16h50
  5. Extraire du texte d'un PDF avec layout.
    Par zedtux dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/04/2008, 15h37

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