Bonjour à tous,
Ma config : Ms Access 2016 - Dernière version de PDF Créator - Windows 11
Je développe une application et je souhaite fusionner plusieurs pdf (Facture, CGV, et autres documents), je génère mes pdf dans un dossier et je lance la fusion avec le composant COM Pdfcreator jusque là tout fonctionne correctement.
Mais si je relance mon script sans quitter Access ma fusion ne prend plus qu'un seul fichier !
J'ai fouillé sur le forum et ailleurs et ne trouve pas la solution, j'ai tenté d'ajouter l'instruction PDFCreatorQueue.DeleteJob mais elle me fait planter le script !
Voici le script que j'utilise, je l'ai récupéré sur le site pdforge et adapté à mes besoins pour mes tests :
Merci à tous pour votre aide
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 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
Partager