Antworten / Aufrufe | Themen mit dem Stichwort word vba warten bis print job fertig | |
---|---|---|
14 Antworten 18714 Aufrufe |
PDFCreator - wie unter WordVBA programmieren? Begonnen von Jean Raul
03. Juli 2008, 22:35:12 worddokument pdfcreator autosavedirectory verweise undter integriere pdfforge cclearcache programmier example crator dateinahme pdfcreator programmierung word vba pdf creator pdf pfad mit excel pdf creator makro pdfcreator vba coption word makro pdf creator und pfad excel vba pdfcreator pdfcreator visual basic vba programmieren word online vba pdfcreator autosave makro word pdfcreator aktuell pfad dokumententitel pdfcreator-prozesse wdo useautosavedirectory yms zgu 45175338 |
http://www.pdfforge.org/
WordVBA zu programmieren? Im Prinzip schaffe ich es ja mit dem mitgelieferten Beispielprogrammen. Ich habe aber Probleme damit, den Dateinamen zu programmieren, unter dem die pdf ausgegeben werden soll. Die PDF wird immer mit dem Pfad und Namen ausgegeben, der den Autosave-Optionen des Programms entspricht, aber nicht mit dem Namen, den ich im Programm vorgebe und haben will.
So lautet mein VBA-Skript. Es soll die aktuell in Word geöffnete Datei ohne weitere Benutzereingriffe als PDF in den Pfad <PDFPfad$> unter dem Namen <PDFName$> speichern:
[code]
Public Function PDFDruck(Optional OhneMsg As Boolean)
Dim Zwi$, PDFPfad$, PDFName$, pdfjob
PDFPfad$ = "C:\Zwi"
'Ermittelt den Namen des aktiven Dokuments:
Zwi$ = ActiveDocument.Name
If InStr(1, Zwi$, ".", vbTextCompare) > 1 Then
PDFName$ = Mid(Zwi$, 1, InStr(1, Zwi$, ".", vbTextCompare) - 1)
Else
PDFName$ = "Unbenannt"
End If
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "PDFCreator kann nicht initialisiert werden. Bitte beenden Sie die PDFCreator-Prozesse.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
GoTo Ende
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = PDFPfad$
.cOption("AutosaveFilename") = PDFName$
.cOption("AutosaveFormat") = 0 '0 = PDF
.cDefaultPrinter = "PDFCreator"
.cPrinterStop = False
.cClearCache
ActiveDocument.PrintOut Background:=False
End With
'!!!!!!!!!!!!!!!!Wartet ab, bis fertig gedruckt ist:!!!!!!!!!!!!!!
Dim sleepTime, maxTime, c
sleepTime = 250
maxTime = 10
c = 0
Do While (pdfjob.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
c = c + 1
Sleep 200
Loop
'!!!!!!!!!!!!!!!Ende des Abwartens!!!!!!!!!!!!!!
Ende:
Zwi$ = pdfjob.cOutputFilename
pdfjob.cClose
Set pdfjob = Nothing
If Not OhneMsg Then
If Len(Zwi$) > 0 Then
MsgBox "Das Dokument wurde nach " & Zwi$ & " gespeichert.", vbInformation
Else
MsgBox "Beim Speichern als pdf ist ein Fehler aufgetreten!", vbCritical
End If
End If
PDFDruck = Zwi$
End Function
[/code]
Auch die anderen COM-Funktionen des Programms sind mir ein Buch mit sieben Rätseln, da die Funktionen nach meiner Ansicht sehr schlecht dokumentiert sind. Weiß jemand mehr? Anbei die "Dokumentation" und die Beispieldateien: