Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
[VB.NET] Fehler - Dokument über NotesUIWorkspace drucken
tdottore:
Hallo Miteinander
Den Code werde ich Dienstag extra für euch anschaulich umschreiben und jede Zeile mit Messageboxen debuggen.
Ich hoffe bis Dienstag ist die SP1-Installtion von Visual Studio 2010 fertig(Läuft seit 2h -.-).
Der PDFCreator ist auf allen Computer installiert. Default-Drucker muss er nicht sein, da ich den Druckername in der Funktion angeben.
Ich melde mich Montag wieder.
Danke u. Gruss
tdottore:
Hallo Miteinander
Ich bin jetzt schon ein grosses Stück weiter, was diese Funktion anbelangt.
Die Funktion sieht aktuell so aus:
--- Code: --- ''' <summary>
''' Druckt das Notesdokument über die NotesOberfläche auf dem PDFCreator Drucker aus.
''' </summary>
''' <remarks></remarks>
Private Function _DruckeNotesDokument() As Boolean
Try
'Prüfe ob Drucker überhaupt vorhanden ist
Dim Printer As New Printing.PrinterSettings()
Dim PrinterName As String
Dim PDFCreatorVorhanden As Boolean = False
For Each PrinterName In Printing.PrinterSettings.InstalledPrinters
Printer.PrinterName = PrinterName
If Printer.IsValid = True Then
If PrinterName.ToLower = "pdfcreator" Then
PDFCreatorVorhanden = True
Exit For
End If
End If
Next
If PDFCreatorVorhanden = False Then
Throw New Exception("Der Drucker PDFCreator existiert nicht!")
End If
'****************************************************
'Drucke Dokument von Notes aus
'****************************************************
Dim NotesUIWorkspaceType As Type = Type.GetTypeFromProgID("Notes.NotesUIWorkspace")
Dim workspace As Object
'Erstelle NotesObjekt
workspace = Activator.CreateInstance(NotesUIWorkspaceType)
'Öffne MailDatenbank
Dim db As Object = workspace.CurrentDatabase.Database
'Hole Dokument mit der UNID
Dim doc As Object = db.GetDocumentByUNID(_UNID)
' 'Prüfe ob Dokument schon offen ist
Dim dokIstSchonOffen As Boolean = doc.ISUIDOCOPEN
' 'Öffne Dokument zum Editieren
Dim Resul As Object = workspace.Editdocument(False, doc, True, "", True, False)
System.Threading.Thread.Sleep(1000)
'Drucke Dokument auf dem NotesToDMS Drucker
Resul.print(0, Nothing, Nothing, Nothing, "PDFCreator")
'Wenn Dok am Anfang nicht offen war, dann jetzt schliessen.
If dokIstSchonOffen = False Then
System.Threading.Thread.Sleep(1000)
Resul.close(True)
End If
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
--- Ende Code ---
Die wichtigste Änderung betrifft die Wartezeiten nach dem EditDocument() und dem Print().
Diese verhindern den obigen Fehler.
Leider kam schon das nächste Problem auf mit der Print-Funktion:
Bei einigen Dokumenten erscheint der Printdialog, obwohl der Drucker angegeben wurde.
Dieser Fehler ist soweit ungelöst(LN 8.5.2, FP3) und nach diesem Forum bereits gemolden:
http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/02281d362c9a89bf852575ef00056353?OpenDocument
Hoffe er wird bald gelöst.
Gruss Toni
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln