Hallo zusammen.
Hab bei msdn, google, und hier gesucht. Leider bislang keine Info für mein "Problem" gefunden.
Evtl. ists nur was ganz kleines, aber ich komm nicht drauf.....
Anforderung bisher:
Word-File öffnen, mit Daten aus Datenbank füllen, auf Standard-Drucker drucken, und Word-File verwerfen. Ging nur um einen Lieferschein, Daten werden in der DB abgelegt, somit kann der LS nach dem Ausdrcuk verworfen werden. Funktioniert.....
Anforderung neu:
Der LS soll auf zwei Drucker ausgedruckt werden. Einmal wie bisher an der "Kasse", einmal im Verwaltungsbüro zur Ablage.
Mein bisheriger Ansatz:
Public Function PrintLS(ByVal Exemplar As String) As Integer
Dim MyFeedBack As Integer = 0
Dim MyWordApplication As Microsoft.Office.Interop.Word.Application
Dim MyWordDocument As Microsoft.Office.Interop.Word.Document
MyWordApplication = New Microsoft.Office.Interop.Word.Application
If System.IO.File.Exists("C:\Vorlage_Lieferschein.docx") Then
Try
MyWordApplication.Visible = False 'Word sehen zum Test?
MyWordDocument = MyWordApplication.Documents.Open( _
"C:\Vorlage_Lieferschein.docx")
MyWordDocument.Activate()
FillBookMark(MyWordDocument, "PM_ArtNo","")
FillBookMark(MyWordDocument, "PM_ArtTxt","")
FillBookMark(MyWordDocument, "PM_BillAddress_1","")
...
...
MyWordDocument.PrintOut()
MyWordDocument.SaveAs("C:\Letzter_Lieferschein.docx")
MyWordDocument.Close()
MessageBox.Show("Datei erstellt")
MyFeedBack = 1
Catch ex As IOException
MessageBox.Show("Datei nicht vorhanden, oder Probleme beim" & _
"Zugriff")
MyFeedBack = -2
Finally
MyWordApplication.Application.Quit()
End Try
Else
MessageBox.Show("Vorlage nicht vorhanden.")
MyFeedBack = -1
End If
Return MyFeedBack
End Function Public Sub FillBookMark(ByVal Document As _
Microsoft.Office.Interop.Word.Document, ByVal BookMark As String, ByVal _
NewText As String)
If Document.Bookmarks.Exists(BookMark) Then
Document.Bookmarks().Item(BookMark).Range.Text = NewText
Else
MessageBox.Show("Textmarke " & BookMark & " nicht vorhanden!")
End If
End Sub Nun ist mein Problem, dass die PrintOut-Methode keinen entsprechenden Partameter zur Druckerauswahl zur Verfügung stellt sondern immer auf den Standarddrucker druckt.
Hat jemand eine Idee wie das gelöst werden könnte??
Da die beiden Ausdrücke unterschiedliche "Köpfe" haben wird die PrintLS-Funktion 2-mal durchlaufen. Der Parameter "Exemplar" beinhlatet die unterschiedlichen Angaben. Theoretisch könnte ich diesen Parameter vor dem Ausdrucken noch auswerten und dann basierend dadrauf den entsprechenden Drucker auswählen.
Irgendwie so
Gruss
Beitrag wurde zuletzt am 04.06.12 um 10:37:07 editiert. |