AW: PDF-Creator
15.08.2014 10:19:51
ing.grohn
Hallo René,
Du lagst mit Deiner Vermutung völlig richtig.
Das Programm ist noch aktiv!
Was muss ich an dem Modul ändern, damit es funktioniert (wie gesagt, bis zum letzten Update lief alles wunderbar)?
Hier das Modul:
Public Sub PrintToPDF_Early(Pfad As String, DateiName As String)
Dim pdfjob As Object 'PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim Drucker As String
sPDFPath = Pfad
sPDFName = DateiName
'Prüfung ob das Arbeitsblatt leer ist; wenn ja dann Programm-Ende
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
With pdfjob
'Sicherstellen, dass der PDFCreator startet
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
'Standardwerte setzen
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'MsgBox sPDFPath & sPDFName
'PDF drucken
Drucker = ActivePrinter
ActiveSheet.PrintOut _
From:=1, _
To:=1, _
Copies:=1, _
ActivePrinter:="PDFCreator"
'Warten, bis der Druckjob zum Drucken gekommen ist
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Sleep 1000
Loop
Sleep 1000
pdfjob.cPrinterStop = False
'Warten, bis PDFCreator gedruckt hat; dann Freigabe des Objekts
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
ActivePrinter = Drucker
End Sub
Vielleicht hast Du einen Rat!
Mit freundlichn Grüßen
Albrecht