Bonjour,
Ma config : Access 2016, dernière version de PDF Creator sous Windows 11
Je rencontre un problème pour fusionner plusieurs pdf depuis le composant PDFcreator COM en vba.
Je créé mes fichiers pdf depuis acces dans un dossier, ensuite je lance la fusion de tous mes fichiers. La première fois tout fonctionne correctement mais si je relance le script sans quitter Access Pdfcreator prend qu'un fichier sur les 3 !
J'ai essayé d'intégrer la fonction DeleteJob mais elle plante le script !
Voici le code que j'utilise :
Private Sub bt_fusion2_Click()
On Error GoTo MyErrorHandler
Dim fullPath As String
Dim PDFCreatorQueue As Variant
Dim printJob As Variant
Dim oPDF As Variant
Set PDFCreatorQueue = CreateObject("PDFCreator.JobQueue")
Set oPDF = CreateObject("PDFCreator.PdfCreatorObj") 'PDFCreator.clsPDFCreator
file1 = CurrentProject.Path & "\Temp\facture.pdf"
file2 = CurrentProject.Path & "\Temp\CGV2024.pdf"
file3 = CurrentProject.Path & "\Temp\AttestationTVA.pdf"
fullPath = CurrentProject.Path & "\temp\" & Me.txt_nompdffusion
PDFCreatorQueue.Initialize
DoCmd.Hourglass True ' change pointeur sourie en sablier
oPDF.AddFileToQueue file1
oPDF.AddFileToQueue file2
oPDF.AddFileToQueue file3
MsgBox "Il y a " & PDFCreatorQueue.Count & " fichier(s) dans la file pour fusion."
PDFCreatorQueue.MergeAllJobs
Set printJob = PDFCreatorQueue.NextJob
printJob.SetProfileByGuid ("DefaultGuid")
MsgBox "PDFCreator va créer le fichier fusionné. Cela peut prendre quelques minutes pour de gros fichiers."
DoCmd.Hourglass True 'change pointeur sourie en sablier
printJob.ConvertTo (fullPath)
DoCmd.Hourglass False 'change pointeur sourie en normal
If (Not printJob.IsFinished Or Not printJob.IsSuccessful) Then
MsgBox "Erreur de Création ! Impossible de fusionner les fichiers."
Else
MsgBox "Fichier fusionné créé avec succès. Opération terminée !", vbInformation
End If
PDFCreatorQueue.Clear
PDFCreatorQueue.ReleaseCom
Set PDFCreatorQueue = Nothing
Set printJob = Nothing
Set oPDF = Nothing
Exit Sub
MyErrorHandler:
PDFCreatorQueue.ReleaseCom
Dim Msg As String
Msg = "Error No " & Err.Number & ": " & Err.Description
If Err.Number = -2146233079 Then
MsgBox Msg + " Vider la file, et redémarrer PDF Creator."
Else
MsgBox Msg
End If
End Sub
Merci à tous pour l'aide.
Stéfen