Hallo,
hab ein kleines Problem mit dem Drucken eines PDF's mit unten stehenden Code...
Wenn ich nun Office-Dokumenten wie z.B. Word oder eine Email ausdrucken will funktioniert das wenn das Programm wie Word oder Outlook NICHT geöffnet sind perfekt...
Wenn diese Programme aber geöffnet sind, wird der Std.-Drucker nicht geändert und druckt einfach darauf los.
Wie könnte ich das umgehen ??
Mir fehlt da total der Ansatz...
Gruß
Alex
hab ein kleines Problem mit dem Drucken eines PDF's mit unten stehenden Code...
Wenn ich nun Office-Dokumenten wie z.B. Word oder eine Email ausdrucken will funktioniert das wenn das Programm wie Word oder Outlook NICHT geöffnet sind perfekt...
Wenn diese Programme aber geöffnet sind, wird der Std.-Drucker nicht geändert und druckt einfach darauf los.
Wie könnte ich das umgehen ??
Mir fehlt da total der Ansatz...
Gruß
Alex
VB.NET-Quellcode
- 'Drucker merken
- Dim pd As New PrintDocument()
- For Each s As String In PrinterSettings.InstalledPrinters
- 'Standarddrucker ?
- If pd.PrinterSettings.PrinterName = s Then
- 'MsgBox(s & " ist der Standardrucker.")
- MeinDrucker = s
- End If
- Next s
- 'Drucker auswählen für PDFCreator
- SetDefaultPrinter(DirectCast("PDFCreator", String))
- Dim pdfjob As PDFCreator.clsPDFCreator
- pdfjob = New PDFCreator.clsPDFCreator
- Try
- pdfjob.cStart(, True)
- Catch ex As Exception
- 'gemerkten Drucker wieder als Standard einsetzen
- SetDefaultPrinter(DirectCast(MeinDrucker, String))
- ' und Fehlermeldung
- Fehlermeldung = ex.Message & " - Fehler: Dateivorschau_erstellen, Fehler beim Drucken . . . "
- Fehler_Instance.Ausgabe(Fehlermeldung)
- End Try
- 'PDFCreater vorbereiten und Dokument drucken
- With pdfjob
- .cOption("UseAutosave") = 1
- .cOption("UseAutosaveDirectory") = 1
- .cOption("AutosaveFormat") = 2 ' 0 = PDF, 1 = PNG, 2 = JPEG
- .cOption("AutosaveDirectory") = OutputPath
- .cOption("AutosaveFilename") = OutputFilename
- .cClearCache()
- .cPrintFile(OriginalDatei)
- End With
- pdfjob.cPrinterStop = False
- 'Wir warten bis der Druckjob gedruckt wurde
- Do Until pdfjob.cCountOfPrintjobs = 0
- Application.DoEvents()
- Loop
- pdfjob.cClose()
- pdfjob = Nothing
- 'gemerkten Drucker wieder als Standard einsetzen
- SetDefaultPrinter(DirectCast(MeinDrucker, String))
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „lris08“ ()