Zeilenumbruch im Ausdruck

06/05/2008 - 18:54 von Richard Daehne | Report spam
hallo NG,

Muss gleich vorweg sagen, dass ich nicht genau weiß, ob ich hier in der
richtigen Liste bin - es könnte auch ein technisches Problem sein.
Vielleicht hat aber trotzdem jemand eine Idee und kann mir helfen ...

Ich soll in einem VB.NET 2005 Projekt einen unformatierten Text auf einem
Nadeldrucker ausgeben.
Als Treiber haben wir den "Standard \ Generic/Text only" verwendet. Da eine
Papierrolle eingelegt ist, haben wir als Papiergröße "German Std
Endlospapier" eingestellt.
Seitdem macht der Drucker keinen Vorschub nach einer neuen Zeile und auch
nicht am Ende des Druck-Jobs.
Ich kann das Verhalten selbst nicht sehen, muss mich auf die Aussage des
Kunden verlassen - er sagt, dass die nàchste Zeile einfach hinten dran am
Ende der letzten Zeile gedruckt wird.

Den Ausdruck führe ich unter .NET so aus:
Dim pd As System.Drawing.Printing.PrintDocument (global innerhalb der
Klasse)

im Konstruktor:
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage

Gedruckt wird im Ereignis:
Private Sub pd_PrintPage

ev.Graphics.DrawString(strLine, printfont, Brushes.Black, leftMargin, yPos,
New StringFormat())

in strLine kommen Zeilenumbrüche vor (vbcrlf), die der Drucker aber
anscheinend ignoriert.

Drucke ich auf einem PDF-Drucker in meiner Umgebung, funktioniert das mit
den Zeilenumbrüchen.
Aber: wenn der Kunde mit notepad auf diesem Drucker druckt, werden die
Zeilenumbrüche auch ausgedruckt.
Wenn man im Druckertreiber als Seitengröße "A4" einstellt, macht er den
Vorschub, aber gleich 7 cm.

Es ist so gemacht, dass ich fast nach jeder Zeile den Druckjob abschließe,
damit er die Zeile sofort druckt. Trotzdem wird kein Zeilenvorschub gemacht,
also weder durch vbCrLf noch durch den Abschluss des Druckjobs.

Die Frage ist: welche Zeichen muss ich senden, damit der Drucker sich so
verhàlt wie beim Notepad?


vielen Dank für jeden Tip
und schöne Grüße aus Erlangen,
Richard Dàhne
 

Lesen sie die antworten

#1 Gerold Mittelstädt
06/05/2008 - 19:31 | Warnen spam
Hallo!

Richard Daehne schrieb:
Muss gleich vorweg sagen, dass ich nicht genau weiß, ob ich hier in der
richtigen Liste bin - es könnte auch ein technisches Problem sein.
Vielleicht hat aber trotzdem jemand eine Idee und kann mir helfen ...

Ich soll in einem VB.NET 2005 Projekt einen unformatierten Text auf einem
Nadeldrucker ausgeben.
Als Treiber haben wir den "Standard \ Generic/Text only" verwendet. Da eine
Papierrolle eingelegt ist, haben wir als Papiergröße "German Std
Endlospapier" eingestellt.
Seitdem macht der Drucker keinen Vorschub nach einer neuen Zeile und auch
nicht am Ende des Druck-Jobs.
Ich kann das Verhalten selbst nicht sehen, muss mich auf die Aussage des
Kunden verlassen - er sagt, dass die nàchste Zeile einfach hinten dran am
Ende der letzten Zeile gedruckt wird.

Den Ausdruck führe ich unter .NET so aus:
Dim pd As System.Drawing.Printing.PrintDocument (global innerhalb der
Klasse)

im Konstruktor:
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage

Gedruckt wird im Ereignis:
Private Sub pd_PrintPage

ev.Graphics.DrawString(strLine, printfont, Brushes.Black, leftMargin, yPos,
New StringFormat())

in strLine kommen Zeilenumbrüche vor (vbcrlf), die der Drucker aber
anscheinend ignoriert.

Drucke ich auf einem PDF-Drucker in meiner Umgebung, funktioniert das mit
den Zeilenumbrüchen.
Aber: wenn der Kunde mit notepad auf diesem Drucker druckt, werden die
Zeilenumbrüche auch ausgedruckt.
Wenn man im Druckertreiber als Seitengröße "A4" einstellt, macht er den
Vorschub, aber gleich 7 cm.

Es ist so gemacht, dass ich fast nach jeder Zeile den Druckjob abschließe,
damit er die Zeile sofort druckt. Trotzdem wird kein Zeilenvorschub gemacht,
also weder durch vbCrLf noch durch den Abschluss des Druckjobs.

Die Frage ist: welche Zeichen muss ich senden, damit der Drucker sich so
verhàlt wie beim Notepad?


vielen Dank für jeden Tip
und schöne Grüße aus Erlangen,
Richard Dàhne



Wie alt ist das Ding denn? Der versteht doch sicher noch/nur "roh":
http://support.microsoft.com/kb/154078/en-us

Viele Grüße!

Ähnliche fragen