String an Drucker senden

Hallo,

ich arbeite an einem kleinen Progrämmchen welches Daten aus einem
Formular an einen Barcodedrucker senden soll.
Zusammen mit den zu druckenden Daten möchte ich aber auch noch
Befehle an den Barcodedrucker senden, die ihm sagen sollen in welchem
Barcode er drucken soll, die Positionierung, Größen usw.

Nun habe ich bislang nur folgende Möglichkeit gefunden etwas an einen
Drucker zu senden(Arbeite seit 2 Wochen mit Visual Basic 2005 Express Edition):

Imports System.Drawing.Printing

public class …

Dim printFont As Font
Dim printdoc As New PrintDocument

printFont = New Font(…)

Private Sub Drucken …

AddHandler printdoc.PrintPage, AddressOf Me.printdoc_PrintPage
printdoc.Print()

End Sub


Private Sub printdoc_PrintPage(ByVal sender As Object, ByVal ev As
PrintPageEventArgs)

Dim x As Single = 10
Dim y As Single = 10
ev.Graphics.DrawString(strDaten, printFont, Brushes.Black, x,
y)

End Sub
end class

Ich hatte mir gedacht ich könnte alle Daten (Befehle, Barcodeinhalt)
in einem String zusammenbasteln und dann an den Drucker senden.
Sollte dann im etwa so aussehen:

strDaten = „^XA^FO50,50^BCN,300,N,N,N^FD“ & Barcodeinhalt & „^XZ“

Die Befehle sind ZPLII Code.

Nun ist es leider so das er den kompletten String ausdruckt und bei
DrawString() sind schon Formatierungsoptionen angegeben, die ich
eigentlich mit ZPLII Befehlen mitschicken möchte.

Gibt es eine andere Funktion oder Möglichkeit, NUR meinen
String an den Barcodedrucker zu senden, so dass der Barcodedrucker
die Befehle erkennen kann ?

Hallo!

Die Arbeit mit einem PrintDocument funktioniert auch genau so. Das PrintDocument ist ja letztlich die Abstraktion einer Seite, die auf einem beliebigen (eben dem in Windows ausgewählten) Drucker immer gleich aussehen soll. Da dürfen die Texte, die darauf gezeichnet werden, nicht nochmal extra interpretiert werden.

Wenn Du Low-Level Steuersignale an den Drucker schicken willst, dann wüsste ich leider gar nicht, wie das vernünftig mit reinem .NET gehen kann. Evtl. kann man per P/invoke (also z.B. Aufruf von Win32-Funktionen) etwas machen.
Oder mal schauen, ob Du irgendwie den String der Steuerzeichen an PRT: senden kannst. File.Open(„PRT:“, FileMode.Open) funktioniert leider nicht, aber evtl. findest Du ja noch einen anderen Weg…

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

barcodedrucker, ist der an der seriellen Schnittstelle angehängt oder verwendest du den Standarddrucker des PCs?

Vielen dank für die Antworten. Der Barcode-Drucker ist an einer Parallelschnittstelle angeschlossen.

Nach nochmals langem suchen habe ich aber endlich eine Lösung gefunden.
http://support.microsoft.com/kb/823179/de

mfg
Stefan M.