PDF kombinieren merging PdfCreator
07.10.2016 04:11:20
Peter
Ich möchte mehrere PDF-Dateien in einzelnen Datei per excel VBA-Makro zusammenführen.
Zur VBA Kommunikation nutze ich PDFCreator Version 2.3.2.
Folgenden Code fand ich schon im Netz, aber es funktioniert einfach nicht.
Wenn der Code den Bereich MergeAllJobs erreicht, wirft er eine Fehlermeldung ab:
Run time error und " The queue must not be empty".
Die Testdatei zum Testen befindet sich an den Orten wie im Code erwähnt.
Wäre cool wenn mir einer von Euch weiterhelfen könnte!!!
CODE:
Sub Test_PDFCreatorCombine()
Dim fn(0 To 1) As String, s As String
fn(0) = "C:\Users\SVellore\Documents\VBA\Report Tool\_Projects\_02-Templates\NA\temp1.pdf"
fn(1) = "C:\Users\SVellore\Documents\VBA\Report Tool\_Projects\_02-Templates\NA\temp2.pdf"
s = "C:\Users\SVellore\Documents\VBA\Report Tool\_Projects\_02-Templates\NA\ _
PDFCreatorCombined.pdf"
PDFCreatorCombine fn(), s
If vbYes = MsgBox(s, vbYesNo + vbQuestion, "Open?") Then Shell ("cmd /c " & """" & s & """") _
_
_
_
_
End Sub
'Macro Purpose: Print to PDF file using PDFCreator
' Designed for early bind, set reference to: PDFCreator - Your OpenSource PDF Solution
Sub PDFCreatorCombine(sPDFName() As String, sMergedPDFname As String)
Dim oPDF As PDFCreator.PdfCreatorObj, q As PDFCreator.Queue
Dim pj As PrintJob
Dim v As Variant, i As Integer
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set q = New PDFCreator.Queue
With q
'On Error Resume Next
.Initialize
If LBound(sPDFName) = 0 Then
.WaitForJobs UBound(sPDFName) + 1, 1
Else
.WaitForJobs UBound(sPDFName), 1
End If
Set oPDF = New PDFCreator.PdfCreatorObj 'PDFCreator.clsPDFCreator
i = 0
For Each v In sPDFName()
If fso.FileExists(v) Then oPDF.PrintFile v
i = i + 1
Next v
On Error Goto EndNow
.MergeAllJobs
Set pj = q.NextJob
With pj
.SetProfileByGuid "DefaultGuid"
.SetProfileSetting "Printing.PrinterName", "PDFCreator"
.SetProfileSetting "Printing.SelectPrinter", "SelectedPrinter"
.SetProfileSetting "OpenViewer", "false"
.SetProfileSetting "OpenWithPdfArchitect", "false"
.SetProfileSetting "ShowProgress", "false"
.ConvertTo sMergedPDFname
End With
EndNow:
.ReleaseCom
End With
End Sub[COLOR=#333333][/COLOR]