Extraire des données dans un PDF

Signaler
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
Shaegal
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
Bonjour,

Sur mon poste, j'ai Adobe Reader 9.1.0.

J'ai, pour le moment, 275 fichiers PDF dont j'ai besoin de récupérer certaines données techniques importantes. D'autres documents vont suivre.

Y'a-t-il un moyen d'extraire lesdites données afin de les mettre dans un tableau (à l'instar de StreamReader peut lire dans un document Word par exemple)?

Merci d'avance...

12 réponses

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
Tu télécharges cette archive et tu l'extrait:
http://text-mining-tool.com/TextMiningTool%201.1.42.zip

Tu télécharges .Net Reflector et t'ouvre le fichier TextMiningTool.exe.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
un pdf n'est bien souvent qu'un fichier texte... le contenu est en clair a l'intérieur la plupart du temps...

peux etre zippé, crypté, etc. a voir.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
Salut Renfield !!!!

Bah alors:
    Imports System.IO
    Public Class SaveClass
    Public Function GetContents(ByVal FullPath As String)
    Dim contents As String
    Dim read As StreamReader
    Try
    read = New StreamReader(FullPath)
    contents = read.ReadToEnd
    read.Close()
    Return contents
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Function
    Public Function SaveTextToFile(ByVal strData As String, _
    ByVal FullPath As String) As Boolean
    Dim objReader As StreamWriter
    Try
    objReader = New StreamWriter(FullPath, True)
    objReader.WriteLine(strData)
    objReader.Close()
    Return True
    Catch Ex As Exception
    Return False
    End Try
    End Function


Header version header; PDF-1 , 2, 3, 4 ???:
public bool EsCabeceraPDF(string fileName)
    {
        byte[] buffer = null;
        FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        long numBytes = new FileInfo(fileName).Length;
        //buffer = br.ReadBytes((int)numBytes);
        buffer = br.ReadBytes(5);

        var enc = new ASCIIEncoding();
        var header = enc.GetString(buffer);

        //%PDF−1.0
        // If you are loading it into a long, this is (0x04034b50).
        if (buffer[0] == 0x25 && buffer[1] == 0x50
            && buffer[2] == 0x44 && buffer[3] == 0x46)
        {
            return header.StartsWith("%PDF-");
        }
        return false;

    }



Et ^^; La doc:
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
J'oubliais: VB6 PDF to TEXT:
    Private Sub cmdCreateLog_Click()
      Dim lngLocation As Long
      Dim strLine     As String
     
      Open "c:\test.pdf" For Binary As #1   ' Open file just created.
      Open "c:\pdfTest.txt" For Output As #2
     
      Do While lngLocation < LOF(1)   ' Loop until end of file.
         strLine = Input(1, #1)    ' Read character into variable.
         lngLocation = Loc(1)   ' Get current position within file.
         Print #2, lngLocation & "     " & Replace(Replace(strLine, vbLf, "line feed"), vbCr, "carriage return") & vbCrLf;
      Loop
      Close #1   ' Close file.
      Close #2
      End
    End Sub 
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Bonjour à tous et merci pour ces réponses.

Duke49:
As-tu essayé ton code? Chez moi (VB), il donne des caractères ASCII indescriptibles sur seulement deux ou trois lignes.
Mes fichiers pdf comportent des tableaux et autres fioritures. Mais même en ayant créé (pour essai) un pdf ne comportant que des mots, j'ai eu ça:
%PDF-1.4
%�쏢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
x��VMs�0��W���`����Ņ��0e�
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjou,
1) existe : [http://sourceforge.net/[url= Tapez le texte de l'url ici.]projects/itextsharp/]Tapez le texte de l'url ici./url
2) et on voit ici comment l'utiliser alors :
En utilisant le moteur de recherche de ce forum


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
premier lien raté ===>> Tapez le texte de l'url ici.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Oups! je n'ai pas précisé que ce n'était pas un lien mais un copié/collé du texte que que je récupère en utilisant StreamReader. Je n'aurai pas du le mettre en bleu, d'où la confusion.

Au temps pour moi... ;-)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
/FlateDecode

compressé ...
a decompresser, donc ^^

ZLib est ton ami


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Salut Renfield,

Je ne sais pas si c'est compressé. Comme je l'ai dit plus haut, j'ai créé un PDF test et le résultat est le même.
Je ne connais pas la méthode d'encodage PDF. Sans doute faut-il importer une dll mais laquelle? Il y a peu de sujet la-dessus.
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
Je sais bien que tu souhaite une source en VB mais il faut bien ce lancer un jour dans les traductions ^^. Comme de la écrit ucfoutu, iTextSharp est une excellente open source; je te redonne le lien pour télécharger la source en C#, essaie de traduire les bouts de codes qui t’intéresses en VB: http://sourceforge.net/projects/itextsharp/files/latest/download
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Salut Duke49,

En fait, le lien de ucfoutu n'apparaissait pas chez moi et j'ai cru qu'il avait pris mon texte pour ... un lien!

Bref, merci pour ledit lien. Il est vrai que je ne fais que du VB. Il est vrai aussi qu'apprendre à lire d'autres langages me serait fort utile. J'ai d'ailleurs l'objectif de développer en Java (mobiles oblige).
C'est juste le temps qui me manque. Et là, je n'ai pas ce temps. J'ai même commencer à travaillé les fichiers PDF ... à la main, car j'ai la pression derrière moi.

Alors, si quelqu'un pouvais me traduire ce bout de code sus-cité, j'apprendrai plus vite (dans l'urgence) dans le langage que je connais que d'apprendre d'abord un langage "inconnu", même s'il y a des similitudes.
Ce n'est pas de la fainéantise car j'aime programmer, mais bien de l'urgence. Dans d'autres circonstances, j'aurai branché mon cerveau sur "apprendre"...

Merci d'avance.