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

Contribuez Discussion :

Excel / Word / PDF avec Adobe Acrobat Pro et PDFCreator 1.7.3 (obsolète)


Sujet :

Contribuez

  1. #261
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Acrobat Reader : Extraction du Texte d'une liste de PDF via des SendKeys

    Pour les masochistes ..... avec toutes les tracasseries associées, voir ici

    Une version Acrobat existe ici ( 40 à 50% plus rapide que cette version )

    Pour le module mPDF

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    Option Explicit
     
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Private Declare Function QueryPerformanceCounter Lib "kernel32" (X As Currency) As Boolean
    Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Boolean
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, _
                                                  ByVal pszPath As String, _
                                                  ByVal lngsec As Long) As Long
    Dim Cpt As Long
     
    Private Function CreationDossier(sDossier) As Long
    Dim Rep As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Private Sub DecompteA()
    Dim LastRow As Long, i As Long
    Dim FSO As Object
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Cpt = 0
        With ShParam
            LastRow = .Range("A" & Rows.Count).End(xlUp).Row
            For i = LastRow To RDepart Step -1
                If FSO.FileExists(.Cells(1, 1) & "\" & .Cells(i, 2)) Then
                    If UCase$(.Cells(i, 1)) = "X" Then Cpt = Cpt + 1
                Else
                    .Cells(i, 1) = "o"
                End If
            Next i
        End With
        Set FSO = Nothing
    End Sub
     
    Private Function ExistenceFichier(sFichier As String) As Boolean
        ExistenceFichier = Dir$(sFichier) <> ""
    End Function
     
    Private Function LocaliserAcroReader() As String
    Dim FSO As Object
    Dim Wsh As Object
    Dim sCheminReader As String
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set Wsh = CreateObject("WScript.Shell")
     
        sCheminReader = Wsh.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\")
     
        If Not IsNull(FSO.GetAbsolutePathName(sCheminReader)) Then
            LocaliserAcroReader = FSO.GetAbsolutePathName(sCheminReader)
        Else
            LocaliserAcroReader = ""
        End If
     
        Set FSO = Nothing
        Set Wsh = Nothing
    End Function
     
    Sub Pdf2Txt()
    Dim sFichier As String
    Dim sAcro As String, Clip As Object
    Dim LastRow As Long, i As Long
    Dim iDep As Long
    Dim sDossier As String
    Dim sDossierTxt As String, sNom As String, sNomfichier As String, FSO As Object
     
        QueryPerformanceCounter Debut
        DoEvents
        DecompteA
        If Cpt = 0 Then
            MsgBox "Taper dans la colonne A un x ou X en vis à vis" & vbCrLf & _
                   "des fichiers à traiter de la colonne B", vbInformation + vbOKOnly, "x ou X"
            Exit Sub
        End If
     
        Application.StatusBar = ""
        sDossier = ShParam.Cells(1, 1)
        bDossier = ShParam.CheckBoxes("chkDossier").Value = 1
        sDossierTxt = ThisWorkbook.Path & "\" & "Essais_Pdf_Txt"
     
        If bDossier Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            If FSO.FolderExists(sDossierTxt) Then _
               FSO.DeleteFolder sDossierTxt, True
            Set FSO = Nothing
            ShParam.CheckBoxes("chkDoublons").Value = 0
        End If
     
        bDoublons = ShParam.CheckBoxes("chkDoublons").Value = 1
     
        CreationDossier sDossierTxt
     
        sAcro = LocaliserAcroReader
     
        If ExistenceFichier(sAcro) = False Then
            MsgBox "Le chemin d'Acrobat Reader est erroné ou" & vbCrLf & "Acrobat Reader n'est pas installé" & vbCrLf & vbCrLf & _
                   "Voir la procédure Pdf2Txt du module mPDF" & vbCrLf & "à sAcro = .....", vbInformation + vbOKOnly, "Chemin du Reader erroné"
            Debug.Print sAcro
            Exit Sub
        End If
     
        LastRow = ShParam.Range("A" & Rows.Count).End(xlUp).Row
        iDep = 0
        For i = RDepart To LastRow
            If UCase$(ShParam.Range("A" & i)) = "X" Then
                iDep = iDep + 1
     
                sFichier = sDossier & "\" & ShParam.Range("B" & i)
     
                Set FSO = CreateObject("Scripting.FileSystemObject")
                sNomfichier = FSO.GetBaseName(sFichier)
                sNom = sDossierTxt & "\" & sNomfichier & ".txt"
                Set FSO = Nothing
     
                If bDoublons Then
                    sNom = RenommerFichier(sDossierTxt, sNomfichier & ".txt")
                End If
     
                Set Clip = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
                Clip.Clear
                Clip.SetText sNom, 1
                Clip.PutInClipboard
     
                Shell sAcro & " " & sFichier, vbNormalFocus
     
                With CreateObject("WScript.Shell")
                    .SendKeys "%h", True
                    .SendKeys "s", True
                    .SendKeys "x", True
                    .SendKeys "^v", True
                    Sleep 250
                    .SendKeys "{ENTER}", True
                    .SendKeys "e", True
                    .SendKeys "o", True
                    Sleep 2500
                    .SendKeys "^q", True
                End With
     
                Sleep 5000
     
                Set Clip = Nothing
                Application.StatusBar = "Extraction : " & iDep & " / " & Cpt
            End If
            DoEvents
        Next i
     
        With ActiveWindow
            .ScrollColumn = 1
            .ScrollRow = 1
        End With
        DoEvents
     
        QueryPerformanceCounter Fin
        QueryPerformanceFrequency Freq
        Application.StatusBar = "Terminé : " & Format((Fin - Debut) / Freq, "0.00 s")
    End Sub
     
    Private Function RenommerFichier(sDossier As String, sNomfichier As String) As String
    Dim sNouveauNom As String
    Dim sPre As String
    Dim sExt As String
    Dim iExt As Long
    Dim i As Long, Pos As Long
    Dim FSO As Object
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If FSO.FileExists(sDossier & "\" & sNomfichier) Then
            sNouveauNom = sNomfichier
            Pos = InStrRev(sNomfichier, ".")
            If Pos > 0 Then
                iExt = Len(sNomfichier) - Pos + 1
                sExt = Right$(sNomfichier, iExt)
                sPre = Left$(sNomfichier, Len(sNomfichier) - iExt)
            Else
                sExt = ""
                sPre = sNomfichier
            End If
     
            i = 0
            While FSO.FileExists(sDossier & "\" & sNouveauNom)
                i = i + 1
                sNouveauNom = sPre & Chr(40) & Format(i, "000") & Chr(41) & sExt
            Wend
            sNomfichier = sNouveauNom
        End If
        Set FSO = Nothing
     
        RenommerFichier = sDossier & "\" & sNomfichier
    End Function
    Images attachées Images attachées  
      0  0

  2. #262
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut erreur automation
    bonjour,

    je souhaitais utiliser le bout de code ci-dessous pour fusionner des PDF mais cela m'affiche erreur automation le fichier spécifié est introuvable sur la ligne Set Pdf = CreateObject("pdfforge.pdf.pdf")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Fusion()
    Dim Pdf As Object, Fichiers(2)
        Set Pdf = CreateObject("pdfforge.pdf.pdf")
     
        Fichiers(0) = ThisWorkbook.Path & "\" & "1.pdf"
        Fichiers(1) = ThisWorkbook.Path & "\" & "2.pdf"
        Fichiers(2) = ThisWorkbook.Path & "\" & "3.pdf"
     
        Pdf.MergePDFFiles_2 Fichiers, ThisWorkbook.Path & "\" & "Fusion.pdf", True
     
        Set Pdf = Nothing
    End Sub
    si vous aviez une solution a mon petit souci, cela m'arrangerait bien

    je vous remercie d'avance
      0  0

  3. #263
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Bonjour,

    l'application n'est pas installée ou non référencée dans Windows …



    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      0  1

  4. #264
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, même si l'on est en Late Binding ( pas de références à cocher ), il faut quand même avoir installé PDFCreator 1.7.3. Voir cette remarque concernant les versions > à la 1.7.3 : PDFcreator V 2.x et interface COM, ainsi que celle-ci.

    Après tu as plus pratique : Fusion des PDF d'un Dossier, voir également ici toujours via PDFCreator 1.7.3. Te référer à cette liste des contributions pour naviguer dans le bazar, salmigondis ( au choix )
      0  0

  5. #265
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fusion des fichiers word d'un dossier en PDF à partir d'une liste Excel
    Bonjour,

    Est-ce qu'on peut faire la même chose que "Fusion des fichiers PDF d'un dossier à partir d'une liste Excel" mais avec des fichiers words qui n'ont pas été convertit en pdf avant?

    J'utilise Adobe Acrobat XI pour fusionner des documents Word. J'aimerai faire la même chose mais à partir d'une liste excel.

    Merci!
      0  0

  6. #266
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, tu as déjà Fusion des PDFs d'un dossier via Acrobat Pro / Excel à disposition.
    Donc à adapter à ton contexte : dans la sélection remplacer *.pdf par *.doc* ce qui donnera la liste des doc à convertir.
    Insérer une procédure de conversion Doc2Pdf des *.doc* en *.pdf dans un dossier à fixer, et cela à l'endroit idoine dans la procédure FusionPdf.
    Depuis la version 2007 SP2 tu as le format pdf de dispo en natif dans Office, le macro recorder te fournira un code de base pour la conversion Doc2Pdf.
      0  0

  7. #267
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, même si l'on est en Late Binding ( pas de références à cocher ), il faut quand même avoir installé PDFCreator 1.7.3. Voir cette remarque concernant les versions > à la 1.7.3 : PDFcreator V 2.x et interface COM, ainsi que celle-ci.

    Après tu as plus pratique : Fusion des PDF d'un Dossier, voir également ici toujours via PDFCreator 1.7.3. Te référer à cette liste des contributions pour naviguer dans le bazar, salmigondis ( au choix )
    Bonjour,
    je vous remercie pour votre retour. Mon problème réside dans le fait que je suis obligé d'avoir pdf creator 1-7-3 pour faire fonctionner votre outils.
    n'est-il pas possible de l'utiliser avec des versions plus récentes type 2-1-2?

    je vous remercie par avance

    Julien
      0  0

  8. #268
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, eh bien non, voir cette remarque concernant les versions 2.x, ainsi qu'ici.
      0  0

  9. #269
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
      0  0

  10. #270
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut Remarque Warning OLE
    Concernant Acrobat : Extraction du Texte d'une liste de PDF

    Le message suivant : "Microsoft Office Excel attend la fin de l'exécution d'une action OLE d'une autre application" peut apparaître quand une procédure s'éternise pour un fichier pdf conséquent, même si tout s'est bien passé.

    Pour désactiver les warnings OLE dans ce cas dans la procédure Pdf2Txt
    Voir réponse d'AlainTech ici

    Déclaration à ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Declare Function CoRegisterMessageFilter Lib "OLE32.DLL" (ByVal lFilterIn As Long, _
                                                                      ByRef lPreviousFilter) As Long
    Encadrer la procédure Pdf2Txt de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim iMsgFilter As Long
    '.....
    CoRegisterMessageFilter 0&, iMsgFilter
     
    For i = RDepart To LastRow
        ' .....
    Next i
     
    CoRegisterMessageFilter iMsgFilter, iMsgFilter
    Images attachées Images attachées  
      0  0

  11. #271
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut Alternative à la lenteur d'Acrobat pour l'extraction du Texte d'un PDF
    La génération de fichiers textes à partir de PDF est lente via Acrobat. Un euphémisme.....
    Une autre approche suggérée par Jurassic Pork et PatrickToulon pallie ce problème.

    Cela est possible via Xpdf
    Télécharger dans "Precompiled binaries" la version Windows.

    L'exécutable pdftotext.exe est copié dans le dossier de test : C:\Tests.
    La contrainte principale dans l'usage d'Xpdf est que les noms/chemins des fichiers/exé ne doivent pas comporter d'espaces.

    Codes adaptés de ceux de PatrickToulon

    Coller le texte du PDF sélectionné dans une feuille Excel
    Affecter un bouton à la procédure SélectionPDF
    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
    Option Explicit
     
    Private Declare Function QueryPerformanceCounter Lib "kernel32" (X As Currency) As Boolean
    Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Boolean
    Private Debut As Currency, Fin As Currency, Freq As Currency
     
    Sub SélectionPDF()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier PDF (*.pdf), *.pdf")
        If Fichier <> False Then Lecture Fichier
    End Sub
     
    Private Sub Lecture(ByVal sFichier)
        QueryPerformanceCounter Debut
     
        PDF2Text sFichier
     
        Application.ScreenUpdating = False
        With Feuil1
            .Columns("A:A").ClearContents
            .Range("A1").PasteSpecial
            .Range("C1").Select
        End With
        Application.ScreenUpdating = True
     
        QueryPerformanceCounter Fin
        QueryPerformanceFrequency Freq
        Application.StatusBar = "Terminé : " & Format((Fin - Debut) / Freq, "0.00 s")
    End Sub
     
    Private Sub PDF2Text(ByVal sFichier)
    Dim Wsh As Object
        Set Wsh = CreateObject("WScript.Shell")
        Wsh.Run "cmd /c C:\Tests\pdftotext.exe " & sFichier & " -raw - | clip", vbHide, True
        Set Wsh = Nothing
    End Function
    Générer un fichier texte à partir de la sélection d'un pdf
    Affecter un bouton à la procédure SélectionPDF
    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
    Option Explicit
     
    Private Declare Function QueryPerformanceCounter Lib "kernel32" (X As Currency) As Boolean
    Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Boolean
    Private Debut As Currency, Fin As Currency, Freq As Currency
     
    Sub SélectionPDF()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier PDF (*.pdf), *.pdf")
        If Fichier <> False Then PDF2Text Fichier
    End Sub
     
    Private Sub PDF2Text(ByVal sFichier)
    Dim Wsh As Object, FSO As Object
    Dim sNomfichier As String, sNomFinal As String
        QueryPerformanceCounter Debut
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        sNomfichier = FSO.GetBaseName(sFichier)
        sNomFinal = sNomfichier & "_Raw.txt"
        Set FSO = Nothing
     
        Set Wsh = CreateObject("WScript.Shell")
        Wsh.Run "cmd /c C:\Tests\pdftotext.exe " & sFichier & " -raw C:\Tests\" & sNomFinal, vbHide, True
        Set Wsh = Nothing
     
        QueryPerformanceCounter Fin
        QueryPerformanceFrequency Freq
        Application.StatusBar = "Terminé : " & Format((Fin - Debut) / Freq, "0.00 s")
    End Sub
    On pourra y rajouter un module qui permet d'effacer tous les presse-papiers ( office et windows )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
     
    Sub ClearClipboard()
        OpenClipboard (0&)
        EmptyClipboard
        CloseClipboard
    End Sub
    Application Téléchargeable ici
    Images attachées Images attachées  
      1  1

  12. #272
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    salut kiki
    tu savais que de (ce petit exe) il y en avais une vielle version dans le dossier de adobe reader 9.40 les autre je ne sais pas

    sous le nom de "acrotextextractor.exe"

    malheureusement pour des raisons que j'ignore il n'est pas décompilé dans le dossier il reste dans le cab du setupfile
    Nom : Capture.JPG
Affichages : 2103
Taille : 169,4 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  2

  13. #273
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, cet exe est toujours présent dans la version 15 d'Acrobat DC. Il se retrouve après installation dans C:\Program Files (x86)\Adobe\Acrobat 2015\Acrobat et C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader
    Images attachées Images attachées  
      0  1

  14. #274
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    a oui exact je ne l'ai pas vu la première fois
    "C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroTextExtractor.exe"
    bon ben y a pas quelque chose a faire avec ca ??

    j'ai essayé de chercher sur la toile mais j'ai rien trouvé de concluant en ligne de commande
    peut être a tu des idées
    si on arrivait a une extraction on pourrait se passer d'aller chercher un exe externe non??
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  2

  15. #275
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    J'oubliais dans ton post 271
    tu a oublié un detail
    a savoir la récupération du text du clipbord dans une variable a la place de ton paste

    perso plutôt que d'utilise l'objectdata j'utilise un object beaucoup plus facile a manipuler
    c'est l'object"htmlfile"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set clipB = CreateObject("htmlfile")
        clipB.parentWindow.clipboardData.clearData "Text"'on vide le clipboard
     
       'appel a ta fonction ou code interne 
     
    tavariable= clipB.parentWindow.clipboardData.GetData("text") 'on recupere le contenu text du clipboard 
    .
    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  2

  16. #276
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re presque ca
    re
    c'est presque ca KIKI
    tu peut supprimer aussi la création de l' htmlfile il ne te sert a rien!!
    ou prevoir dans la fonction le retour en variable string ou pas dans ce cas la avec un 2d arguments

    un peu comme suit
    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
    Private Function PDF2Text(ByVal sFichier, Optional variable As Variant = False) As variant
        Dim Wsh As Object, Clip As Object
        Set Clip = CreateObject("htmlfile")
        Set Wsh = CreateObject("WScript.Shell")
        Wsh.Run "cmd /c C:\Tests\pdftotext.exe " & sFichier & " -raw - | clip", vbHide, True
        Select Case variable
        Case "string"
            Clip.parentWindow.clipboardData.clearData "Text"
            PDF2Text = Clip.parentWindow.clipboardData.GetData("text")
        Case "tableau"
            PDF2Text = Split(Clip.parentWindow.clipboardData.GetData("text"), vbCrLf)
        End Select
        Set Wsh = Nothing
        Set Clip = Nothing
    End Function
    exemple d'utilisation

    dans une variable de type string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'la variable "texte" contient tout le texte  du pdf
        texte = PDF2Text(sFichier, "string")
    dans une variable de type tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'la variable tableau est maintenant rempli des lignes du texte du pdf
        ' et donc c'est un tableau de x lignes  sur 1 colonne
        tableau = PDF2Text(sFichier, "tableau")
    sans le 2 d argument sa met juste le pdf en clipboard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'met le texte du pdf dans clipboard par l'argument dans la ligne shell on peut se servir de la fonction paste apres 
        PDF2Text sFichier
    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      1  1

  17. #277
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oupss mille excuse
    change le type de sortie pour la fonction en variant
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  2

  18. #278
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    KIKI

    pour normaliser ton principe jusqu'ici
    on peut placer l'exécutable dans le dossier du reader et se servir de ta fonction localiser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Function LocaliserAcroReader() As String
        Dim Wsh As Object, adobread As String
        Set Wsh = CreateObject("WScript.Shell")
        adobread = Wsh.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\")
        adobread = Replace(adobread, "AcroRd32.exe", "pdftotext.exe")
        If Dir(adobread) <> "" Then
            LocaliserAcroReader = adobread
        Else
            LocaliserAcroReader = ""
        End If
        Set Wsh = Nothing
    End Function
    comme ca c'est propre
    ca fait une sorte de complément
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  19. #279
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    Par défaut Petite modification, si possible...
    Citation Envoyé par kiki29 Voir le message
    A titre documentaire ( tiré d'un exemple VBS ) un échantillon en version 2.x

    De très nombreuses méthodes/propriétés ne sont plus accessibles ( versions payantes obligent ? ) par rapport à la version 1.7.3


    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
     
    Option Explicit
     
    Sub Tst_Background()
    Dim oShell As Object, PDFCreatorQueue As Object
    Dim sCheminOut As String, printJob As Object, FSO As Object
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set oShell = CreateObject("Shell.Application")
        Set PDFCreatorQueue = CreateObject("PDFCreator.JobQueue")
     
        sCheminOut = ThisWorkbook.Path & "\" & "Sortie.pdf"
     
        PDFCreatorQueue.Initialize
     
        oShell.ShellExecute "RUNDLL32.exe", "PRINTUI.DLL,PrintUIEntry /k /n ""PDFCreator""", "", "open", 1
     
        If Not PDFCreatorQueue.WaitForJob(10) Then
            Application.StatusBar = "File d'impression vide après " & " 10 secondes"
        Else
            Set printJob = PDFCreatorQueue.NextJob
     
            printJob.SetProfileByGuid ("DefaultGuid")
            printJob.SetProfileSetting "BackgroundPage.Enabled", "true"
            printJob.SetProfileSetting "BackgroundPage.Repetition", "RepeatAllPages"
            printJob.SetProfileSetting "BackgroundPage.File", ThisWorkbook.Path & "\" & "Background.pdf"
            printJob.ConvertTo (sCheminOut)
     
            If (Not printJob.IsFinished Or Not printJob.IsSuccessful) Then
                Application.StatusBar = "Conversion impossible du fichier : " & sCheminOut
            Else
                Application.StatusBar = "Terminé avec succès"
            End If
        End If
     
        PDFCreatorQueue.ReleaseCom
        Set oShell = Nothing
        Set FSO = Nothing
    End Sub
    Bonjour, j'ai malheureusement effacé depuis longtemps la version 1.7.3 de PDFCreator, et je suis obligé d'utiliser la dernière version. J'avais déjà vu cet exemple dans les COM Scripts de PDFCreator, mais j'aurai besoin d'insérer du texte à différents endroits (X et Y) de l'image de fond, pour générer puis expédier automatiquement avec Outlook ( je sais je suis chez Excel ) en pièce jointe un fichier. Je ne sais pas par où ni comment procéder pour y insérer ces informations.

    Merci de vos réponses, et bien sûr, je suis à votre disposition pour tout renseignement complémentaire.
      0  0

  20. #280
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, il y a ceci : PDFCreator Insertion Image de fond dans Document Pdf
    PDFCreator Ajout de Texte, Ligne et Hirondelles sur un Document Pdf
    PDFCreator Génération PDF puis envoi par mail via CDO

    Toutes les 3 fonctionnent avec PDFCreator 1.7.3

    Désolé mais pour les versions 2.x : voir cette remarque qui donne cependant un exemple VB6 pour placer un texte, à toi de l'adapter à ton contexte. Quant à l'explorateur d'objets il est plus que succinct.
    Images attachées Images attachées    
      0  1

Discussions similaires

  1. resultat sur un fichier excel,word,pdf
    Par harakatyouness dans le forum C#
    Réponses: 3
    Dernier message: 08/08/2007, 16h45
  2. convertir en pdf avec adobe VBA
    Par sophie.baron dans le forum Général VBA
    Réponses: 1
    Dernier message: 26/03/2007, 14h49
  3. Problème avec adobe acrobat reader
    Par Rabie de OLEP dans le forum Windows XP
    Réponses: 4
    Dernier message: 24/03/2007, 20h50
  4. Problème avec Adobe acrobat reader
    Par castelm dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 08/03/2007, 21h19
  5. Impression .PDF avec adobe
    Par popo68 dans le forum Access
    Réponses: 2
    Dernier message: 26/02/2007, 12h19

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