Voir le flux RSS

Eric KERGRESSE

Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM.

Noter ce billet
par , 16/02/2020 à 05h47 (84 Affichages)
-
Ce billet est issu de cette discussion : Insertion-pdf-complet-entre-2-feuilles-calcul-excel

La solution proposée consiste à éditer en .pdf les différents documents dans un répertoire dédié et d'utiliser la Dll PDFCREATOR_COM (version gratuite) pour assembler le tout dans un seul .pdf. Ce code avait été récupéré sur Internet et avait servi à assembler des résultats de mesures d'environ une cinquantaine de fichiers pouvant faire plusieurs pages chacun.

  • Le code ci-dessous reste à adapter et pas réessayé depuis 2018, mais les composants de la dernière version 4.0, chargée hier, n'ont pas changé par rapport à la version 2.5.
  • La matrice contient les fichiers à assembler. Elle a été chargée à l'aide d'un Userform permettant de sélectionner tout ou partie des fichiers.
  • L'ordre d'impression correspond à l'ordre des fichiers dans le répertoire.


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
Sub MergePDFViaImpressionPdf(ByVal CheminFichierFusionne As String, ByVal NomFichierFusionne As String, ByVal CheminDesFichiersPdf As String)

Dim CtrI As Long
Dim RepertoirePdf As String
Dim oPDF As PdfCreatorObj
Dim Q As PDFCreator_COM.Queue
Dim job As PDFCreator_COM.PrintJob

    On Error GoTo Fin

    Set oPDF = New PdfCreatorObj
    With oPDF
         'Debug.Print "Chemin des fichiers pdf : " & CheminDesFichiersPdf
         For CtrI = LBound(MatriceMesures, 1) To UBound(MatriceMesures, 1)
             If MatriceMesures(CtrI, 1) = "X" Then
                'Debug.Print "Fichier pdf " & CtrI & " : " & MatriceMesures(CtrI, 2)
                .AddFileToQueue CheminDesFichiersPdf & Application.PathSeparator & MatriceMesures(CtrI, 2) & ".pdf"
             End If
         Next CtrI
    End With
    
   ' Debug.Print "Chemin du fichier fusionné : " & CheminFichierFusionne
   ' Debug.Print "Nom du fichier fusionné : " & NomFichierFusionne
   ' Debug.Print "Chemin des fichiers Pdf : " & CheminDesFichiersPdf

   ' Debug.Print "oPDF isinstancerunning: " & oPDF.IsInstanceRunning ' close Excel and open if true.
    
    'On Error GoTo Fin ' this is commented out for debuging purposes
    Set Q = New PDFCreator_COM.Queue
    
    With Q
         .Initialize
         .WaitForJobs 2, 10
         Debug.Print "q.Count: " & Q.Count ' here it prints either 1 or 2. Should always be 2.
         .MergeAllJobs
    End With
    
    While Q.Count > 0
            Set job = Q.NextJob
            job.SetProfileByGuid ("DefaultGuid")
            job.ConvertTo (CheminFichierFusionne & Application.PathSeparator & NomFichierFusionne) '(OutPath)
           ' Debug.Print job.IsFinished
           ' Debug.Print job.IsSuccessful
           ' Debug.Print "q.Count3: " & Q.Count
    Wend
        
    Q.ReleaseCom
    
    GoTo Fin

Fin:
    Set job = Nothing
    Set Q = Nothing
    Set oPDF = Nothing
End Sub
Miniatures attachées Images attachées  

Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Viadeo Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Twitter Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Google Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Facebook Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Digg Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Delicious Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog MySpace Envoyer le billet « Excel Assembler plusieurs fichiers pdf avec PDFCREATOR_COM. » dans le blog Yahoo

Commentaires