Bonsoir,
ci-dessous exemple de procédure de fusion de fichiers PDF avec pour paramètres
1- le dossier où se trouve les fichiers à fusionner
2- le nom du fichier résultant
'Installer PDFCreator de pdfforge version 4.3.0
'Ajouter la référence PDFCreator COM dans le menu Outils de l'éditeur VBA
Sub FusionPDF(chemin_fichiers_à_fusionner As String, nom_fichier_fusion As String)
Dim PDFCr As New PDFCreator_COM.PdfCreatorObj, workflow As New PDFCreator_COM.Queue
Dim job_print As PDFCreator_COM.PrintJob
Dim fso As Object
Dim nom_fichier As String, fichier As Object
'// assignation nom fichier et création objet FileSystemObject
nom_fichier = chemin_fichiers_à_fusionner & "\" & nom_fichier_fusion
Set fso = CreateObject("Scripting.FileSystemObject")
'// Contrôles
If Not fso.FolderExists(chemin_fichiers_à_fusionner) Then MsgBox "chemin fichiers à fusionner invalide": Exit Sub
If fso.FileExists(nom_fichier) Then fso.DeleteFile (nom_fichier)
'// Fusion fichiers
With workflow
.Initialize
For Each fichier In fso.GetFolder(chemin_fichiers_à_fusionner).Files
If fso.GetExtensionName(fichier.Path) = "pdf" Then PDFCr.AddFileToQueue fichier.Path
Next fichier
If Not .Count > 1 Then MsgBox "pas de fichiers à fusionner": Exit Sub
.WaitForJobs .Count, .Count * 3
.MergeAllJobs
End With
'// Création d'un job d'impression permettant de créer le fichier PDF relatif à la fusion
Set job_print = workflow.NextJob
With job_print
.SetProfileByGuid "DefaultGuid"
.SetProfileSetting "Printing.PrinterName", "PDFCreator"
.SetProfileSetting "Printing.SelectPrinter", "SelectedPrinter"
.SetProfileSetting "ShowProgress", "false"
.ConvertTo nom_fichier
End With
'// Libération instance PDFCreator
workflow.ReleaseCom
End Sub