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. #341
    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 Positionner des pdf sur une feuille Excel (2)
    Nécessite Acrobat ( pas le Reader ) pour récupérer les proportions initiales des pdf et les appliquer aux vignettes de ces pdf.

    Affecter un bouton à la procédure SelectionPDF
    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
    Option Explicit
     
    Private Function Dimensions(ByVal sFichier As String) As Double
    Dim AVDoc As Object, PDDoc As Object, PDPage As Object
    Dim Rect As Object, iPage As Long
    Dim L As Long, H As Long
     
        Set AVDoc = CreateObject("AcroExch.AVDoc")
     
        If AVDoc.Open(sFichier, "") Then
            Set PDDoc = AVDoc.GetPDDoc()
            iPage = PDDoc.GetNumPages
            If iPage > 0 Then
                Set PDPage = AVDoc.GetPDDoc.AcquirePage(0)
                Set Rect = PDPage.GetSize()
                L = Rect.x
                H = Rect.y
                Dimensions = H / L
            Else
                Dimensions = 1
            End If
     
            PDDoc.Close
            AVDoc.Close True
     
            Set Rect = Nothing
            Set PDPage = Nothing
            Set PDDoc = Nothing
            Set AVDoc = Nothing
        End If
    End Function
     
    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 Wsh = Nothing
        Set FSO = Nothing
    End Function
     
    Sub SelectionPDF()
    Dim OLEobj As OLEObject
    Dim Gauche As Double, Haut As Double, Largeur As Double, Hauteur As Double
    Dim sFichier As String, sCheminReader As String, sCheminRacine As String
    Dim Rap As Double
     
        sCheminReader = LocaliserAcroReader
        sCheminRacine = ThisWorkbook.Path & "\"
     
        If ExistenceFichier(sCheminReader) = False Then
            MsgBox "Le chemin d'Acrobat Reader est erroné ou" & vbCrLf & "Acrobat Reader n'est pas installé", _
                   vbInformation + vbOKOnly, "Chemin du Reader"
            Exit Sub
        End If
     
        With Application.FileDialog(msoFileDialogFilePicker)
            .InitialFileName = sCheminRacine
            .Title = "Sélectionner le fichier PDF"
            .AllowMultiSelect = False
            .ButtonName = "Sélection Fichier"
            With .Filters
                .Clear
                .Add "PDF", "*.pdf"
            End With
            .Show
            If .SelectedItems.Count > 0 Then
                DoEvents
                sFichier = .SelectedItems(1)
                Rap = Dimensions(sFichier)
                Application.ScreenUpdating = False
     
                Gauche = ActiveCell.Left
                Haut = ActiveCell.Top
                Largeur = ActiveCell.Width * 2
                Hauteur = Largeur * Rap
     
                Set OLEobj = ActiveSheet.OLEObjects.Add(Filename:=sFichier)
     
                With OLEobj
                    .Left = Gauche
                    .Top = Haut
                    .Width = Largeur
                    .Height = Hauteur
                End With
     
                Application.ScreenUpdating = True
                Set OLEobj = Nothing
            End If
        End With
    End Sub
     
    Sub Supprimer()
    Dim Shp As Shape
        Feuil1.Cells.ColumnWidth = 10.71
        For Each Shp In ThisWorkbook.ActiveSheet.Shapes
            If Shp.Name <> "BtnDEL" And Shp.Name <> "BtnSel02" Then Shp.Delete
        Next Shp
    End Sub
    Téléchargeable ici
    Images attachées Images attachées  
      1  1

  2. #342
    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 Ouvrir un pdf qq soit le lecteur installé
    Un oubli, ouvrir un pdf qq soit le lecteur installé : Acrobat, Acrobat Reader, Foxit, Sumatra, etc
    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
    Option Explicit
     
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                                          (ByVal hwnd As Long, _
                                           ByVal lpOperation As String, _
                                           ByVal lpFile As String, _
                                           ByVal lpParameters As String, _
                                           ByVal lpDirectory As String, _
                                           ByVal nShowCmd As Long) As Long
     
    Private Sub Ouvrir(ByVal sFichier As String)
    	ShellExecute 0&, "Open", sFichier, 0&, 0&, vbNormalFocus
    End Sub
     
    Sub SelFichierPDF()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichiers PDF (*.pdf), *.pdf")
        If Fichier = False Then Exit Sub
        Ouvrir Fichier
    End Sub
      1  1

  3. #343
    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 Liens hypertextes inactifs sur des PDF
    En "enregistrant sous PDF" cela permet de garder des liens hypertextes parfois "tronqués" actifs, cela sous Office 2007, à la différence "d'imprimer via une imprimante PDF" où les liens seront inactifs.

    Tronqué ? : c'est à dire par exemple que le 1er lien sera celui conservé tronqué du second qui a été sélectionné !
    'https://www.developpez.net/forums/d431662/logiciels/microsoft-office/excel/contribuez/excel-word-pdf-adobe-acrobat-pro-pdfcreator/
    pour
    'https://www.developpez.net/forums/d431662/logiciels/microsoft-office/excel/contribuez/excel-word-pdf-adobe-acrobat-pro-pdfcreator/#post2610967
    Une expérience brutale faite en éditant le pdf et en remplaçant le lien tronqué par le lien "complet", puis en le sauvant, permet au lien PDF "corrigé" d'aller afficher le fichier pointé ...
    La maj du Reader et d'Acrobat semble corriger ce problème de lien tronqué (?) A suivre .....
    Images attachées Images attachées   
      1  1

  4. #344
    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 Version 3.04 des outils XPDF
    Il semble qu'un certain nombre d'options des outils XPDF ne fonctionnent plus sous la version XPDF 4.00.01. Pbs de syntaxe (?) ou pas. En attendant un hypothétique correctif.

    Sauf oubli de ma part tous les fichiers ci-dessous ont été fournis avec l'outil XPDF idoine en version 32 bits.
    Voici donc la dernière version 3.04 de ces outils ( binaires 32/64 et doc scindés en 2 car limite de 2 Mo/pj ) qui ont servi ici pour des exemples fonctionnels. Outils non customisés .....
    Les fichiers concernés sont :
    Conversion PDF en HTML
    Conversion PDF en PNG
    Conversion PDF en PPM
    Conversion PDF en PS ( PostScript )
    Extraction des Pièces Jointes d'un PDF (2)
    Extraction des Pièces Jointes d'un PDF

    Extraction Images d'un PDF
    Lecture métadonnées d'un PDF (2)
    Liste des Polices d'un PDF
    Sauvegarder un PDF au format PDF/A via XPDF/Distiller
    Fichiers attachés Fichiers attachés
      1  1

  5. #345
    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 Référence à cocher pour PDFMaker
    Une question totalement extérieure à ce forum ayant été posée, en liaison avec Utilisation de PDFMaker depuis Excel

    • Cocher AcrobatPDFMakerForOffice sous VBA via Outils/Références
      qui se situe ici : C:\Program Files (x86)\Adobe\Acrobat xxxx\PDFMaker\Office\AcrobatPDFMakerForOffice.tlb
      1  1

  6. #346
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 10
    Points : 21
    Points
    21
    Par défaut Insérer les shapes sélectionnées dans Excel vers un fichier PDF
    Bonjour kiki29 et les autres,
    Tout d'abord, un énorme merci à toi kiki29 pour le partage de tout ce savoir sur la gestion/création/modification des PDF depuis VBA. Ça m'a permis de réaliser déjà beaucoup de choses.
    Cependant, je bute sur un petit truc, et sauf erreur de ma part, le sujet n'a pas encore été abordé.

    Dans un fichier Excel je génère des codes Datamatrix (DM_Codes) stockés sous forme de shapes. Ces DM_Codes sont générés à partir d'une extraction du texte contenu dans un fichier PDF. Je souhaiterai ajouter automatiquement les DM_Codes sélectionnés au fichier PDF, mais je n'y parviens pas.
    Actuellement, à la fin de l'exécution de ma macro, j'ai tous mes shapes sélectionnées. Je fais alors un "copier" puis j'ouvre manuellement mon PDF, fais un "coller" et le tour est joué.

    Est-il possible (sans passer par des sendkeys qui auraient besoin d'ouvrir le fichier PDF et coller les shapes...) d'insérer ces shapes directement dans le PDF ? Ainsi, en exécutant ma macro, au bout de quelques secondes (génération des DM-Code un peu lente), j'obtiens un fichier PDF modifié, prêt à l'emploi.
    Bien entendu, mes shapes sont positionnées et dimensionnées afin d'être correctement placés dans le PDF lors du "coller" (étant donné qu'on ne peut pas spécifier la position d'une image insérée dans un PDF, j'ai supposé qu'il en allait de même pour des shapes).
    Merci d'avance pour l'aide que vous voudrez bien m'apporter,
      1  0

  7. #347
    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, peut-être une piste en t'inspirant du post 132 avec le paramétrage de addWatermarkFromFile. Cela nécessite Acrobat ( pas le Reader )
      1  1

  8. #348
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 10
    Points : 21
    Points
    21
    Par défaut Insérer les shapes sélectionnées dans Excel vers un fichier PDF
    Merci Kiki29 pour cette réponse rapide.
    J'avais bien vu ce post, mais je souhaitais éviter de générer un PDF avec mes DM_Codes.
    J'en déduis donc qu'il n'est pas possible de réaliser cette opération directement en une opération.

    J'ai essayé ta méthode du post 132 [Acrobat Pro 7.0 Ajout d'un filigrane ( watermark ) à partir d'un fichier pdf] cependant je n'ai pas réussi à faire quoi que ce soit à partir de mon PDF. Bizarrement je n'obtiens pas de PDF avec filigrane en sortie bien que mon PDF soit bien enregistré suite aux actions de la macro. j'ai modifié plusieurs paramètres, mais en vain.

    n'ayant visiblement d'autre recours que de passer par un PDF intermédiaire, je me suis alors dit que j'allais tenter autrement ; j'ai donc tenté la technique du post 29 [Insertion d'un arrière plan Pdf dans un Document Pdf]. J'ai testé vite fait avec mes mêmes fichiers sources et ça a parfaitement fonctionné.

    Je vais donc modifier ma macro pour adapter le positionnement et la taille de mes shapes afin de générer automatiquement un PDF temporaire de ces shapes qui sera alors intégré dans mon PDF source puis détruit. l'opération sera un peu plus longue que ce que je pensais, mais elle fonctionnera visiblement très bien.

    PS : bien évidemment j'utilise Acrobat avec Distiller.

    Encore une fois, un grand merci à toi pour tous tes partages de connaissances sur la manipulation des PDF.
      1  0

  9. #349
    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, voilà ce que j'obtiens en positionnant vite fait un Code Barre quelconque sur un pdf. En modifiant les paramètres de addWatermarkFromFile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        JSO.addWatermarkFromFile "/C/Faq/Faq VBA/Exemples/PDF/PdfDistiller/Code 128.pdf", _
                0, 0, iNbPages, True, True, True, 2, 4, -300, 700, False, 1, False, 0, 1
    Images attachées Images attachées  
      0  0

  10. #350
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 10
    Points : 21
    Points
    21
    Par défaut Insérer les shapes sélectionnées dans Excel vers un fichier PDF
    Merci. Je ne doute pas que c'est censé fonctionner. Je n'y suis pas parvenu, mais j'avoue que je n'ai pas creusé plus étant donné que mon test avec l'autre méthode a fonctionné du premier coup. De toute manière, en utilisant la méthode addWatermarkFromFile ou l'autre, il faut que je passe par un PDF intermédiaire. Donc je suis allé au plus simple.
    Entre temps j'ai modifié mon code afin de faire le tout en une seule opération (génération du PDF intermédiaire, intégration dans le fichier source, sauvegarde du fichier modifié et suppression du fichier temporaire). Voici un screenshot de mon fichier source type :
    Nom : Source.JPG
Affichages : 2319
Taille : 70,8 Ko

    Voici le fichier une fois passé dans la moulinette :
    Nom : Modifié.JPG
Affichages : 2320
Taille : 98,8 Ko

    Le but de mon code est de lire le numéro de suivi (alphanumérique) de chaque étiquette (dans ce modèle il n'y a que des "X") achetée sur le site de "La Poste" allemande afin d'ajouter un code 2D de type Datamatrix sur la gauche de l'étiquette dans lequel est simplement codé ce numéro de suivi, mais aussi d'ajouter ce même numéro à la verticale sur la droite de chaque étiquette.

    Maintenant il ne me reste plus qu'à rendre mon code bien propre et à chercher quelle sera la prochaine évolution de mon programme
      1  0

  11. #351
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Bonjour,

    J'ai essayé de descendre la liste de tes contributions, mais il faut l'ouvrir avec quoi le . Z ?

    Je cherche à faire une petite fonction.
    saisir un Nom de fichier (ca je sais faire)

    et lancer l'impression de ce fichier pdf si possible sans ouvrir le reader ou en le refermant ensuite.

    c'est juste la partie pour lancer l'impression

    Un ancien collègue avait fait un VB mais nous n'avons plus le VBrun sur les nouvelles machines, du coup je préfère repartir sur une fonction excel

    Merci de m'aiguiller
    Denis
      0  0

  12. #352
    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, les fichiers sont compressés via 7zip
      0  1

  13. #353
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Bon bin il faudra que je regarde à la maison
    merci
    Denis
      0  0

  14. #354
    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  1

  15. #355
    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 Découpage d'un Doc en PDF unitaire
    Word : Découpage d'un Doc en PDF unitaire via Acrobat ( pas le Reader )
    Référence Acrobat Distiller à cocher dans Outils/Références
    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
    Option Explicit
     
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, _
                                                  ByVal pszPath As String, _
                                                  ByVal lngsec As Long) As Long
     
    Private Function CreationDossier(sDossier) As Long
    Dim Rep As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Sub Decoupage_Acrobat_PDF()
    Dim i As Long, iNumPage As Long, FSO As Object
    Dim sDossier As String, sNomDossier As String
    Dim sNomDoc As String, iNbPages As Long
    Dim sPrinter As String, sNomFichierPS As String, sNomFichierPDF As String, sNomFichierLOG As String
    Dim PDFDist As PdfDistiller
     
        Application.ScreenUpdating = False
     
        sNomDossier = "Charcuterie_PDF"
        sDossier = ThisDocument.Path & "\" & sNomDossier
     
        sPrinter = ActivePrinter
        ActivePrinter = "Adobe PDF"
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If FSO.FolderExists(sDossier) Then FSO.DeleteFolder sDossier, True
        sNomDoc = FSO.GetBaseName(ThisDocument.Name)
        Set FSO = Nothing
     
        CreationDossier sDossier
     
        Application.Browser.Target = wdBrowsePage
        iNbPages = ActiveDocument.BuiltInDocumentProperties("Number of Pages")
        iNumPage = 0
     
        For i = 1 To iNbPages
            ActiveDocument.Bookmarks("\page").Range.Copy
     
            Documents.Add
            Selection.Paste
     
            Selection.TypeBackspace
            iNumPage = iNumPage + 1
     
            sNomFichierPS = sDossier & "\" & sNomDoc & "_" & Format(iNumPage, "00000") & ".ps"
            sNomFichierPDF = sDossier & "\" & sNomDoc & "_" & Format(iNumPage, "00000") & ".pdf"
            sNomFichierLOG = sDossier & "\" & sNomDoc & "_" & Format(iNumPage, "00000") & ".log"
     
            Application.PrintOut outputFilename:=sNomFichierPS, PrintToFile:=True, Background:=False, Range:=wdPrintCurrentPage
            ActiveDocument.Close SaveChanges:=False
     
            Set PDFDist = New PdfDistiller
            PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
            Set PDFDist = Nothing
     
            Set FSO = CreateObject("Scripting.FileSystemObject")
            If FSO.FileExists(sNomFichierPS) Then FSO.DeleteFile (sNomFichierPS), True
            If FSO.FileExists(sNomFichierLOG) Then FSO.DeleteFile (sNomFichierLOG), True
            Set FSO = Nothing
     
            Application.Browser.Next
     
        Next i
     
        ActivePrinter = sPrinter
     
        ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
        Application.ScreenUpdating = True
    End Sub
      0  0

  16. #356
    Membre éclairé Avatar de dumas.blr
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2010
    Messages : 598
    Points : 879
    Points
    879
    Par défaut Structure d'un fichier fdf
    Bonjour kiki29,

    Je suis en train d'essayer de mettre au point du code VBA qui me permettrait de remplir un PDF formulaire, à partir d'une base Access. Je me suis inspiré de tes posts sur Excel pour reproduire certaines des fonctions que je recherche. Mais, par absence de documentation (le site de Adobe est très mal fait), il me manque pleins d'informations.

    Le contexte est le suivant : j'ai développé pour une association un logiciel qui, entre autres, édite des attestations de domiciliation pour des demandeurs d'asile.
    L'administration, toujours tatillonne, exige dorénavant que ces attestation utilisent des formulaires CERFA, ce qui complique terriblement la tâche, car il n'y a pas de fonction pour créée un rapport sous Acces à partir d'un document pdf.
    La solution que j'entrevois s'inspire donc de tes travaux : utiliser le formulaire fdf associé au document pdf et fusionner les données dans le document.
    Pour cela, je pense créer de toute pièce un ficher fdf, alimenter les champs avec les données, puis utiliser une fonction de fusion.

    C'est là que commencent les difficultés :

    1) Quelle est la structure d'un fichier fdf ?.
    J'ai trouvé quelques entrées dans tes posts, et j'ai réussi à creer un fichier fdf à partir de l'utilitaire pdftk (url du site https://www.pdflabs.com), qui peux extraire la structure des champs, creer un fichier fdf associé et fusionner un fdf et un pdf. Tous cela sans la nécessité d'acheter adobe acrobat (le reader suffit amplement)
    Mais j'utilise là un programme externe, dont ne peut être certain de la pérennité.
    De plus, le fichier fdf créé me permet d'imaginer la structure du fichier, mais ne me donne pas la description de celle-ci. Aurais-tu une documentation à disposition ? Les liens communiqués par adobe sont obsolètes, et je n'ai rien vu de mieux sur les forums anglo-saxons.


    2) comment utiliser nativement les fonctions décrites dans tes programmes sans avoir acrobat distiller (uniquement acrobat reader) ?
    J'ai essayé d'utiliser quelques bouts de tes code, mais je me retrouve face à une erreur lors de l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Set AVDoc = CreateObject("AcroExch.AVDoc")
    qui me dit :
    un composant activex ne peut pas crée d'objet
    .
    Ce qui me parait normal car je n'ai pas défini de référence externe. A-t-on besoin de Acrobat distiller (ou toute autre version payante de acrobat) pour utiliser cette librairie ? Je souhaite n'utiliser uniquement que les versions du reader.

    En te remerciant par avances pour tes réponses éclairées
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur
      0  0

  17. #357
    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, cela veut tout simplement dire qu'il te faut Acrobat ( pas le Reader ), sinon il y a ceci. A voir là
      2  1

  18. #358
    Membre éclairé Avatar de dumas.blr
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2010
    Messages : 598
    Points : 879
    Points
    879
    Par défaut
    merci beaucoup Kiki29
    Grace à ton lien, j'ai réussi a récupérer le descriptif d'un fichier FDF

    J'avais déjà vu la page de freeclo, qui présentait de manière empirique une structure de fichier pdf.

    J'ai vu aussi qu'un de tes autres programmes (AAReaderDC_RechAvexcel) se sert de la fenêtre active acrobat reader DC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (FindWindow("AcrobatSDIWindow", "Adobe Acrobat Reader DC")
    Mais je ne comprend pas exactement le mode de fonctionnement. est-ce juste du pilotage de commande acrobat reader à partir d'un classeur excel ? le résultat est-il extrait en texte, et peut-il être copié dans un classeur Excel ?

    L'idéal pour moi maintenant serait de permettre de merger directement un formulaire pdf avec ses données fdf dans une procédure VBA, sans avoir à ouvrir le reader. Est ce que adobe reader DC le permet ?

    autre question ;
    si la ligne
    Set AVDoc = CreateObject("AcroExch.AVDoc")
    nécessite d'avoir acrobat, y a t'il un createobject qui peut utiliser acrobat reader DC (est-ce du early ou du late binding ?) ? Dans ce cas, quel programme / dll est nécessaire ?

    Encore merci pour ton retour qui m'aide énormément
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur
      0  0

  19. #359
    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, hors Acrobat ( pas le Reader ) point de salut. A voir également : Création de Formulaires PDF via LibreOffice. CreateObject n'est là que pour ne pas avoir à référencer Acrobat ( Late Binding ). On développe en Early et déploie en Late surtout en environnement hétérogène.

    Pour l'extraction du texte d'un PDF :
    Acrobat : Copie Texte d'un fichier Pdf dans une feuille Excel

    En relation avec ce post
    Ces 2 fichiers m'ont permis de traiter 6700 fichiers pdf ( 1.7 Go au total, dans 3 présentations différentes ) d'une base Kompass pour en extraire autour de 638 000 entreprises avec uniquement les infos utiles. Cette procédure étant loin d'être une sinécure et reste à la charge de l'utilisateur.


    A moins qu'il ne faille de l'OCR ? Ce qui est possible car le format PDF est un format composite.

    Remarque 1 : Sauvegarde en Texte avec Acrobat et Acrobat Reader
    Remarque 2 : pour Reader 10 + : concernant menu Edition/Préférences catégories

    Pour ce qui concerne la recherche dans des PDFs :
    1. Acrobat Reader : Recherche dans tous les PDFs d'un dossier
    2. Acrobat Reader DC : Recherche dans tous les PDFs d'un dossier


    Voir ici : Version 3.04 des outils XPDF

    Au final je conseille l'usage d'XPDF ( gratuit ) et nettement plus véloce qu'Acrobat ou son Reader.

    Liste des contributions et téléchargements
      2  1

  20. #360
    Candidat au Club
    Homme Profil pro
    Ingénieur Génie Nucléaire
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Génie Nucléaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,
    Je suis un peu novice en VBA, et dans le cadre de mon boulot j'ai besoin de créer une macro assez complexe.
    Mes attentes :
    - Lire l'adresse du dossier indiqué au préalable, contenant un PDF
    - Effectuer une recherche avancer dans le fameux PDF sur un critère de mot indiqué au préalable
    - Export des résultats dans un fichier avec lien hypertexte qui me donne comme information la page où est indiqué le mot rechercher, et si possible un lien vers cette fameuse page

    J'ai essayé d'adapter les codes indiqués sur cette discussion, mais je bloque et je ne comprends pas pourquoi
    Secteur nucléaire oblige, les PC ont des restrictions sécurités qui fait que je ne peux pas accédé à toutes les fonctionnalités normales d'un ordi

    Actuellement, le code effectue correctement l'ouverture et la recherche avancé dans le PDF, mais il ne créé pas l'export de résultat dans un fichier ( le fichier ne se crée pas, seul le lien hypertexte ".pdf" sur la feuille "Fichier" se crée et ne renvoie à rien).
    Quelqu'un peut éclairer ma lanterne svp
    Merci d'avance

    AAReaderDC_RechAv.xls
      0  0

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