VBA Ajout d'une image en pied de page à un PDF
t
Bonjour à tous,
quelqu'un peut-il m'aider ???
J'ai un soucis avec le code que j'ai à disposition.
Contexte:
Via une liste de liens PDF dans un fichier Excel, j'intègre dans tous les fichiers de cette liste une image (via le lien indiqué dans une cellule).
Le code fonctionne bien sauf quand il y a un champ dynamique, je n'y accède plus.
En effet, l'image est intégré comme un bouton d'où le fait que je n'accède plus aux champs dynamiques en arrière plan.
Quelqu'un pourrait-il m'aider à trouver la solution pour que j'intègre l'image sans qu'il n'y ait de problème de saisie dans le PDF ?
quelqu'un peut-il m'aider ???
J'ai un soucis avec le code que j'ai à disposition.
Contexte:
Via une liste de liens PDF dans un fichier Excel, j'intègre dans tous les fichiers de cette liste une image (via le lien indiqué dans une cellule).
Le code fonctionne bien sauf quand il y a un champ dynamique, je n'y accède plus.
En effet, l'image est intégré comme un bouton d'où le fait que je n'accède plus aux champs dynamiques en arrière plan.
Quelqu'un pourrait-il m'aider à trouver la solution pour que j'intègre l'image sans qu'il n'y ait de problème de saisie dans le PDF ?
Public Sub InsertImagePDF()
Dim PDFinputFile As String, PDFoutputFile As String
Dim imageFile As String
Dim AcrobatApp As Acrobat.AcroApp
Dim AcroAVDocInput As Acrobat.AcroAVDoc 'PDF à modifier
Dim AcroPDDocInput As Acrobat.AcroPDDoc 'PDF modifié
Dim jso As Object
Dim pageRect As Variant
Dim pageField As Object
Dim fieldRect(0 To 3) As Double
Dim page As Long
Dim CelImage As String
Dim Cel As Range
CelImage = Range("B1").Value 'Lien vers l'image à intégrer
Range("A3", Range("A3").End(xlDown)).Select 'Liste des liens PDF à modifier
For Each Cel In Range("A3", Range("A3").End(xlDown))
If Cel <> "" Then
PDFinputFile = Cel
imageFile = CelImage
PDFoutputFile = Replace(PDFinputFile, ".pdf", " Modif.pdf")
Set AcrobatApp = New Acrobat.AcroApp
Set AcroAVDocInput = New Acrobat.AcroAVDoc
If AcroAVDocInput.Open(PDFinputFile, "") Then
Set AcroPDDocInput = AcroAVDocInput.GetPDDoc()
Set jso = AcroPDDocInput.GetJSObject
For page = 0 To AcroPDDocInput.GetNumPages() - 1
'Obtenir les coordonnées des limites de la page - calcul position du bouton
pageRect = jso.getPageBox("Crop", page)
'Coordonnées du bouton à ajouter - en haut à gauche (x,y), en bas à droite (x,y)
'Etirer en haut à gauche
fieldRect(0) = 30
'Réduire vers la gauche
fieldRect(1) = 660
'Etirer en bas à droite
fieldRect(2) = 580
'Haut - Bas
fieldRect(3) = -590
'Ajout du bouton avec image
Set pageField = jso.addField("button" & page + 1, "button", page, fieldRect)
pageField.buttonImportIcon imageFile
pageField.buttonPosition = jso.Position.iconOnly
pageField.ReadOnly = False
Next
AcroPDDocInput.save 1, PDFoutputFile
AcroAVDocInput.Close True
AcroPDDocInput.Close
'Si besoin, ouverture du PDF modifié
' If AcroAVDocInput.Open(PDFoutputFile, "") Then
' AcrobatApp.Show
' End If
Else
MsgBox "Erreur dans le listing des liens PDF."
End If
Set AcroPDDocInput = Nothing
Set AcroAVDocInput = Nothing
Set AcrobatApp = Nothing
End If
Next Cel
MsgBox "Tous les fichiers PDF ont été modifié !"
End SubInvité
Bonjour taisen00 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum et notamment :
- Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).
- Quelques fonctionnalites du forum à connaître
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
En revanche, je verrouille le sujet ici, dites moi en MP quand vous aurez fait votre choix
Merci de votre compréhension,
Cordialement