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

VB.NET Discussion :

recherche chaîne de caractères dans PDF


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Par défaut recherche chaîne de caractères dans PDF
    Bonjour,

    Je cherche via VB.NET à retrouver un ou plusieurs mots dans un fichier PDF pour ensuite imprimer la page concernée.
    J'ai essayé ce code là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    oApp= CreateObject("AcroExch.app")
    oAvDoc=CreateObject("AcroExch.AVDoc")
    If oAvDoc.Open(sFichier, "") Then
    TextTrouv = oAvDoc.FindText(sRch, true,false,true)
    End IF
    oApp.Show()
    oAvDoc.BringToFront()
    Le problème est que j'ai une erreur
    Impossible de créer le composant ActiveX.
    Au niveau de mes références, j'ai ajouté Acrobat.dll, à moins que ce ne soit pas la bonne. Mais je ne trouve aucune solution à mon problème.
    Y'aurait il un autre moyen sous VB.NET pour ce que je recherche?

    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    à tester :
    déclaration niveau globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim oApp As Acrobat.AcroApp
        Dim oAvDoc As Acrobat.AcroAVDoc
    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            'This requires a installation of Adobe Acrobat, not Adobe Reader.
            oApp = New Acrobat.AcroApp
            oAvDoc = New Acrobat.AcroAVDoc
     
            '' Ou ("Option Strict" sur "On")
            'oApp = CType(CreateObject("AcroExch.app"), Acrobat.AcroApp)
            'oAvDoc = CType(CreateObject("AcroExch.AVDoc"), Acrobat.AcroAVDoc)
     
            If oAvDoc.Open(sFichier, "") Then
                TextTrouv = oAvDoc.FindText(sRch, 1, 0, 1).ToString ' True, False, True)
            End If
            oApp.Show()
            oAvDoc.BringToFront()

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Par défaut
    Alors pour la première ligne j'ai l'erreur suivante:

    La récupération de la fabrique de classes COM pour le composant avec le CLSID {85DE1C45-2C66-101B-B02E-04021C009402} a échoué en raison de l'erreur suivante : 80040154 Classe non enregistrée (Exception de HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG)).
    Le problème aussi est que acrobate est payante!

    Et pour la seconde, toujours la même
    impossible de créer le composant ActiveX
    Pour l'instant je suis en train de voir si avec ITextSharp je peux faire quelque chose.

    Sinon en ouvrant le pdf avec internet explorer?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Par défaut
    Il faut utiliser la librairi iTextSharp.
    J'ai repris une fonctino qui comparait 2 PDF et arranger à ce que je voulais.

    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
    Public Shared Sub ParcoursPdf(ByVal pdf1 As String, _
                                       ByVal chaîne As String )
            Try
     
                Dim reader1 As New iTextSharp.text.pdf.PdfReader(pdf1)
                Dim pageCount1 As Integer = reader1.NumberOfPages
                Dim pageBytes1() As Byte = Nothing
                Dim token1 As iTextSharp.text.pdf.PRTokeniser = Nothing
                Dim tknType1 As Integer = -1
                Dim tknValue1 As String = String.Empty
     
                Dim writer As New System.IO.StreamWriter(resultFile)
                For i As Integer = 1 To pageCount1 Step 1
     
                    pageBytes1 = reader1.GetPageContent(i)
     
                    If Not IsNothing(pageBytes1) Then
                    token1 = New iTextSharp.text.pdf.PRTokeniser(pageBytes1)
     
                    While token1.NextToken()
     
                        tknType1 = token1.TokenType()
                        tknValue1 = token1.StringValue
     
                      If tknType1 = iTextSharp.text.pdf.PRTokeniser.TokType.STRING Then
     
                          If tknValue1.IndexOf(chaîne) >= 0 Then
     
                        MsgBox("Mot trouvé page " & i)
     
     
                        End If
     
                         End If
                    End While
                     End If
                Next i
                writer.Close()
                reader1.Close()
     
            Catch ex As Exception
                MessageBox.Show("Exception occured. " & ex.Message)
            End Try
        End Sub

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

Discussions similaires

  1. [XL-2007] Recherche chaîne de caractères dans CaseArray
    Par magikmed dans le forum Excel
    Réponses: 2
    Dernier message: 06/07/2015, 14h20
  2. Réponses: 2
    Dernier message: 14/08/2014, 15h24
  3. [AC-2000] Recherche chaîne de caractères dans une table
    Par tibogaet dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/01/2011, 13h38
  4. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 13h51
  5. Réponses: 3
    Dernier message: 09/05/2002, 02h39

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