Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Matrixdrucker (https://www.delphipraxis.net/86113-problem-mit-matrixdrucker.html)

Rolf.Blessing 9. Feb 2007 09:34


Problem mit Matrixdrucker
 
Ich habe unter Delphi 5 einen Report mit ZREPORT geschrieben ... die Ausgabe erfolgt auf einem NEC P2Q.

Bei Überträgen (Neue Seite) funktioniert alles richtig. Sobald aber ein neuer Druckauftrag (neuer Report) abgesetzt wird zieht er das erste Blatt um exakt 2 Zeilen vorab ein.
Ich habe alle auswählbaren Escape Sequenzen geleert und im ZREPORT Quellcode habe ich noch keine Zeile entdeckt, die dieses Phanömen beinflusst.
Gebe ich zu Beginn eines neuen Druckauftrages ein FormFeed so ist alles korrekt, ausser daß jedesmal ein Leerblatt mit ausgegeben wird.


Gibt es eine Möglichkeit den Nadeldrucker bzw. seinen Puffer komplett zu leeren ?


Ich sitze jetzt schon seit Wochen an diesem Problem und bedanke mich für jeden Hinweis im voraus.

Hansa 9. Feb 2007 13:30

Re: Problem mit Matrixdrucker
 
Teste das mal mit Endlospapier. Drucke einen Quelltext oder sonstwas mit mind. 3 Seiten aus. Am besten mit Print, ohne irgendein Textprogramm im Hintergrund. Interessant wäre es, zu wissen, ob permanent durchgedruckt wird, oder in Abständen von ca. einer Seite Leerzeilen auftauchen. Ist letzteres der Fall, dann sind druckerseitig Seitenränder eingestellt. Rutschen diese Leerzeilen immer weiter nach oben oder unten, dann stimmt auch die Papierlänge nicht.

Wird ohne Lücken gedruckt, dann liegt es am Report oder dem Programm. Wie gesagt : keine Einzelblätter verwenden ! Da kommt nämlich der Papierende Sensor ins Spiel und verhagelt die genaue Fehlersuche. Und immer schön erst Papier richtig einlegen, Drucker aus und einschalten und dann erst drucken. Dann ist nämlich definitiv nichts im Druckerspeicher. Natürlich auch die Druckerwarteschlange leeren.

Rolf.Blessing 9. Feb 2007 14:54

Re: Problem mit Matrixdrucker
 
Erst einmal vielen Dank für die Antwort.
Das Phänomen ist konstant und tritt lediglich auf dem ersten Blatt eines Druckauftrages auf.

Die Idee mit dem Papierende Sensor werde ich aufgreifen.


Wie lösche ich denn den kompletten Druckerspeicher (softwaremässig) ?

Hansa 9. Feb 2007 19:34

Re: Problem mit Matrixdrucker
 
Zitat:

Zitat von Rolf.Blessing
Das Phänomen ist konstant...Die Idee mit dem Papierende Sensor werde ich aufgreifen...Wie lösche ich denn den kompletten Druckerspeicher (softwaremässig) ?

Deine Problemlösungsstragie ist anscheinend folgende : Fehler muss schon seit Wochen weg und es wird dann eben mal gefragt. Anregungen werden verschoben und nicht getestet. Es wird sich verrannt in den Druckerpuffer. Und plötzlich werden aus Wochen Monate. :mrgreen:

oki 9. Feb 2007 20:27

Re: Problem mit Matrixdrucker
 
Die alten Nadeldrucker haben teilweise auch noch DIP-Schalter für die Konfiguration. Check das parallel mit ab. (Besser nach dem du Hansas Vorschlag abgearbeitet hast :stupid: )

Gruß oki

marabu 9. Feb 2007 20:32

Re: Problem mit Matrixdrucker
 
Hallo Rolf,

ich glaube nicht, dass der paper sensor des P2Q das Problem verursacht. Ich vermute auch, dass dein Drucker außerhalb deines Reports ein normales Verhalten zeigt.

Delphi-Quellcode:
uses
  Printers;
var
  prn: TextFile;
begin
  AssignPrn(prn);
  Rewrite(prn);
  WriteLn(prn, 'first line of page');
  CloseFile(prn);
end;
ZReport ist ja ein Banded Report Generator und besitzt als solcher ein TitleBand. Hast du eventuell ein solches Band über HasTitle eingebunden, ohne es zu wollen? Das würde nach meiner Vorstellung genau die zwei Zeilen nur auf der ersten Seite produzieren.

Grüße vom marabu

Hansa 9. Feb 2007 20:45

Re: Problem mit Matrixdrucker
 
Oki liefert einen Kommentar zu NEC-Druckern ab. Echt lustig. :lol: Er hat mich aber schon verstanden. Das nächste Stichwort wäre nämlich "DIP-Schalter" gewesen. Und Handbuch. :mrgreen: Vorher macht es nämlich keinen Sinn, Fehler im Programm zu suchen, die durch falsche Hardwareeinstellungen eines Druckers verursacht werden.

oki 9. Feb 2007 20:51

Re: Problem mit Matrixdrucker
 
Hi Hansa, was hab ich verpaßt? Was war so lustig?

Gruß oki

Hansa 9. Feb 2007 20:58

Re: Problem mit Matrixdrucker
 
Als Oki müsste man doch zumindest so was kennen :

http://cgi.ebay.de/Oki-Microline-339...QQcmdZViewItem

Ebay ist Google-Zufall. So ein Oki steht hier in der Nähe. :mrgreen:

oki 10. Feb 2007 08:06

Re: Problem mit Matrixdrucker
 
Moin Hansa,

Das hab ich nun davon, ich mach mich über den_Unwissenden lustig Zitat: "Hallo Unwissender" und bekomme selber nichts mit!! :mrgreen: So kann's eine gehen.

Güße vom ausgeschlafenen oki

PS Groschen sind selten geworden, wie soll der auch noch schnell fallen :)

Rolf.Blessing 10. Feb 2007 13:17

Re: Problem mit Matrixdrucker
 
Erst einmal vielen Dank für eure Mühe und Antworten.

Ein Title Band habe ich nicht eingebaut. Wäre schön gewesen wenn mir dieses unterlaufen wäre.

Textausgaben (Vorschlag von marabu) mit und ohne Steuerzeichen werden völlig korrekt vom NEC P2Q abgearbeitet.
Lediglich unter meinem ZReport werden zu Beginn eines Druckauftrages diese 2 Zeilen eingezogen.

Leider steht der Nadeldrucker nicht bei mir sondern in einer Firma. Sie sind sehr hilfsbereit, aber ich muss eine Version mailen, die Firma testet und dann bekomme ich ein Echo.
Daher kann ich auf einige eurer Vorschläge nicht direkt reagieren.

marabu 11. Feb 2007 08:39

Re: Problem mit Matrixdrucker
 
Hallo Rolf,

dass du explizit kein TitleBand eingebaut hast, das glaube ich dir gerne. Ein TitleBand wird aber auch implizit verbaut, wenn die Eigenschaft HasTitle den Wert True hat. Ob wirklich zwei Leerzeilen zum ungewollten Vorschub führen oder der Druckertreiber spinnt, das könntest du analysieren indem du die Ausgabe in eine Datei umleiten lässt (beim Kunden) oder deren Druckertreiber auch bei dir installierst - dann brauchst du den Kunden nicht zu belästigen.

Schönes Wochenende

Rolf.Blessing 11. Feb 2007 10:19

Re: Problem mit Matrixdrucker
 
Hallo Achim vielen Dank für deine Antwort.

ZReport verfügt über kein HasTitle, dafür hat es HasHeader (=False), HasPageHeader (=True).

Das Verrückte ist ja: Schaltet man den Drucker aus und wieder an so wird der erste Druckauftrag korrekt ausgegeben. Erst ab dem 2.Auftrag kommen die beiden Vorschub Zeilen zum tragen.

Die Idee mit der Druckumlenkung habe ich dankend aufgenommen. Dadurch konnte ich folgende Steuerzeichen ausmachen:

1. Seite:
□@□P□
□P□

Folgende Seite:
□P□
(wohl Seitenvorschub da unterschiedliche DIN Blattgrössen verwendet werden)


Gruss Rolf

Jürgen Thomas 11. Feb 2007 10:47

Re: Problem mit Matrixdrucker
 
Hallo,

mir ist jetzt ein Gedanke gekommen: Könnte es sein, dass nach dem Druckende Zeichen (vermutlich Steuerzeichen) im Drucker verbleiben und beim nächsten Druck zu dem Zeilenvorschub führen?

Prüfe doch (bzw. lasse beim Kunden prüfen), ob beim Druckstart eine Drucker-Initialisierung ausgeführt wird:
  • Drucker auswählen
  • Druckereigenschaften
  • Druckerbefehle
  • <1B>@
Das ist jedenfalls der übliche Befehl für Drucker-Reset bei Text-Only-Druckern.

Gruß Jürgen

Rolf.Blessing 11. Feb 2007 11:00

Re: Problem mit Matrixdrucker
 
Hallo Jürgen,

vielen Dank für den Tip.
Den Reset (ESC @) haut er ja - wie oben eingefügt - auf der ersten Seite raus,
allerdings ohne den Puffer zu löschen.
Ein popeliger Seitenvorschub löscht diese 2 Zeilen Vorschub.

Unter XP
* Drucker auswählen
* Druckereigenschaften
finde ich keine Möglichkeit Druckerbefehle abzusetzen.

Könntest du mir da evtl. auf die Sprünge helfen ?

Gruss Rolf

Jürgen Thomas 11. Feb 2007 14:47

Re: Problem mit Matrixdrucker
 
Hallo Rolf,

sorry, dass ich mich nicht schneller melde, obwohl ich dauerhaft online war. Ich hatte nicht erwartet, dass ich nochmals helfen könnte, und deshalb die Benachrichtigung ausgeschaltet.
Zitat:

Zitat von Rolf.Blessing
Den Reset (ESC @) haut er ja - wie oben eingefügt - auf der ersten Seite raus,
allerdings ohne den Puffer zu löschen.

Der Reset müsste doch den Puffer löschen; das ist doch ein Zweck davon.
Zitat:

Ein popeliger Seitenvorschub löscht diese 2 Zeilen Vorschub.
Naja, ich verstehe es so, dass der Seitenvorschub den Zeilenvorschub nicht löscht; aber wenn eine neue Seite anfängt, ist es schließlich "egal", ob auf der vorigen Seite zwei Leerzeilen gedruckt werden oder nicht. Dein Ziel ist es aber, das CR/LF (oder was immer übrig geblieben ist, vielleicht ein Vertikaler Tab) wirklich zu löschen - und dazu ist das Reset da.
Zitat:

Unter XP ... finde ich keine Möglichkeit Druckerbefehle abzusetzen.
Ich setze voraus, dass für den Matrixdrucker ein Text-Only-Druckertreiber (andere Bezeichnung "Generic - Text only") ausgewählt ist; ein anderer Druckertreiber macht ja wohl keinen Sinn. Bei mir geht es über:
  • Drucker und Faxgeräte
  • den betreffenden Drucker auswählen
  • "Druckereigenschaften festlegen" aktivieren
  • auf der Tab-Seite "Erweitert" steht der Treiber
  • dann müsste es eine Tab-Seite "Druckerbefehle" geben
  • in der ersten Zeile "Druckauftrag starten" kommt die Drucker-Initialisierung
Die dort einzutragenden Codierungen sehen z.T. etwas seltsam aus, entsprechen aber denen aus DOS-Zeiten, z.B.:
Code:
<1B>@<1B>M<121B>l<031B>x<001B>C<0006>
//  entspricht:
1B 40 1B 4D 12 1B 6C 03 1B 78 00 1B 43 00 06
Hilft das? Jürgen

Rolf.Blessing 11. Feb 2007 15:08

Re: Problem mit Matrixdrucker
 
Herzlichen Dank Jürgen,

so langsam dämmern mir nun die Zusammenhänge.
Ich muss sehen, dass ich einen Nadeldrucker mit nach Hause nehmen kann.

Jetzt finde ich auch die Tabs für Steuerzeichen ... DANKE.
Ich hatte bisher den NECP2Q-Treiber installiert und bin nicht über Generic gegangen.


Danke Rolf

Jürgen Thomas 11. Feb 2007 15:28

Re: Problem mit Matrixdrucker
 
Hallo Rolf,

wenn es einen speziellen Druckertreiber gibt, wäre zu untersuchen, wie dort das Reset geregelt ist und welcher Treiber bei der betreffenden Firma installiert ist. Jürgen

Rolf.Blessing 11. Feb 2007 15:33

Re: Problem mit Matrixdrucker
 
Danke Jürgen,

werde mich Anfang der Woche darum kümmern.
Jedenfalls habe ich jetzt endlich mal Anhaltspunkte.

War die letzten Tage fürchterlicher Frust. Programm lief rund, Druck lief rund
und dann dieser Fehleinzug der Folgeblätter.


Danke und schönen Restsonntag
Rolf

Jürgen Thomas 11. Feb 2007 15:42

Re: Problem mit Matrixdrucker
 
Zitat:

Zitat von Rolf.Blessing
Danke Jürgen,

werde mich Anfang der Woche darum kümmern.
Jedenfalls habe ich jetzt endlich mal Anhaltspunkte.

Danke und schönen Restsonntag
Rolf

Noch ein Gedanke: Schicke einen kompletten Druckauftrag im Hex-Dump-Modus zum Drucker; der kann ja aus drei Zeilen "Zeile 1" ff. bestehen, damit er nicht zu lang ist. Was kommt nach dem letzten Seitenvorschub 0C (hex)? Dann könntest Du suchen, woher das kommt.

Ebenso schönen Restsonntag! Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz