XL 2019 Convertir pdf en image d'un dossier ou insertion images dans pdf

matlatarte

XLDnaute Junior
Bonjour après avoir pas mal cherché (parmis les contributions de kiki29 notamment), je n'arrive pas à trouver un code VBA pour convertir des fichiers pdf d'un dossier en Jpg ou png par exemple... Et cela en automatisé (pas de fenêtre de dialogue) via pdfcreator ou autre ?

L'idée à la base est d'intégrer des images dans un pdf a des endroits précis à chaque fois différents... J'ai donc avancé :

Je coupe mon pdf en pdf séparés ok
Je transforme mes pdf en images PAS ok
J'importe mes images de pdf en arrière plan dexcel ok
Je place mes images dessus (avec l'idée du placement grâce à l'arrière plan) ok
Jexporte en image le classeur ok
Et J'intègre l'image en filigrane sous le pdf d'origine ok mais problème d'alignement...

Quelqu'un aurait une idée soit pour simplifier tout cela (machine à gaz pas vraiment au point) soit pour convertir les pdf ? OU solution pour superposer 2 PDF via vba?
Cordialement
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Salut, pour la conversion en PNG via XPDF 3.04, à adapter à ton contexte.
Conversion PDF en PNG via XPDF

XPDF 3.04 Téléchargeables ici ou là
xpdfbin-win-3.04 32 bits
xpdfbin-win-3.04 64 bits

cet utilitaire est à dézipper via 7Zip. Une copie de Pdftopng.exe est à placer à priori à la racine de l'utilitaire Pdf2Png.XLS. Dans la procédure Private Sub PDF2Png(ByVal sFichier) le chemin est par défaut
sCheminAppli = ThisWorkbook.Path & "\" & "pdftopng32.exe".
Pdftopng.exe a été renommé par commodité pdftopng32.exe ( pas vraiment utile )
A lire
 

Pièces jointes

  • pdf2png2.jpg
    pdf2png2.jpg
    79.9 KB · Affichages: 63
  • Pdf2Png.zip
    762.3 KB · Affichages: 21
Dernière édition:

matlatarte

XLDnaute Junior
Dernière édition:

matlatarte

XLDnaute Junior
Et sinon j'ai cette fct qui marche pour powerpoint comment l'adapter pour excel ?

Sub SavePDFAsPng(sPathToPDF As String, sPathToPNG As String)
Dim MonPPT As New PowerPoint.Application
Dim oPres As Presentation


' Height/Width are hardcoded here
' You could get trickier and bring the PDF into any presentation
' once to get its proportions, delete it, set the slide size to the same
' proportions, then re-insert the PDF
Dim sngWidth As Single
Dim sngHeight As Single


sngWidth = 841.875
sngHeight = 595.25
Set MonPPT = CreateObject("PowerPoint.Application")
MonPPT.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
Set oPres = MonPPT.Presentations.Add
With oPres
With .PageSetup ' set it to 8.5x11
.SlideHeight = sngHeight ' 11in * 72 points per inch
.SlideWidth = sngWidth
End With
.Slides.AddSlide 1, .SlideMaster.CustomLayouts(1)
With .Slides(1)
Set oSh = .Shapes.AddOLEObject(0, 0, sngWidth, sngHeight, , sPathToPDF)
Call .Export(sPathToPNG, "PNG") '"PNG" pour ping, "JPG" pour jpeg, "BMP" ...
End With
.Saved = False
MonPPT.Quit
Set MonPPT = Nothing

End With


End Sub


Sub TestSavePDFAsPng()
Call SavePDFAsPng("NomFichierpdf.pdf", "NomFichierpng.png")
End Sub
 

matlatarte

XLDnaute Junior
Re, voir plus haut Post#2 avec Pdf2Png.zip qui contient Pdf2Png.xls et pdftopng.exe
j'aimerai tout convertir les pdf d'un dossier SANS BOITE DE DIALOGUE...
je peux faire un par un par exemple mais tout d'un coup ?

VB:
Sub Rectangle1_Cliquer()
PDF2Png (ThisWorkbook.Path & "\" & "-2.pdf")
End Sub

D'autre part la taille /résolution est configurable ? car la c'est vraiment petit... et les fichier png n'écrasent pas les anciens...
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Re, pour les paramètres de pdftopng.exe voir dans le dossier Doc le fichier pdftopng.txt ( ici en PJ ), puis modifier la chaine Wsh.Run dans Pdf2Png.xls.
 

Pièces jointes

  • pdftopng.txt
    3.2 KB · Affichages: 10
  • param.png
    param.png
    5.1 KB · Affichages: 48
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 710
Messages
2 112 117
Membres
111 429
dernier inscrit
AFZ