Moin!
Meine Hoffnung auf Hilfe begründet sich eigentlich auf der Annahme, dass jemand schon mal so ein Problem hatte.
Eine Antwort wie deine stellt mich auch schon zufrieden, da ich mich so in meiner Vermutung, dass der Drucker ein bisschen rumspinnt, bestätigt sehe.
Also, wenn die Zeilenhöhe ansonsten identisch ist, und nur sporadisch eine mittlere Nadel der Matrix ausfällt, und deshalb Achten zu Nullen werden, dann ist das ein mechanisches Problem des Druckers, und weniger ein Problem der steuernden Applikation. Denn ich gehe mal davon aus, dass die korrekten Zahlen zum Drucker gesendet werden, und der die nur einfach nicht korrekt umsetzt.
Es könnte natürlich sein - das war meine erste Reaktion auf "Zeilen zusammengequetscht" - dass der Drucker CR und LF nicht korrekt auseinanderhält. Das übliche Setting für DOS war, dass das Zeilenende mittels CR/LF dafür sorgte, dass CR den Wagenrücklauf zum Zeilenanfang und LF den Papiervorschub zur nächsten Zeile besorgte.
Ein Unix-System mit nur LF am Zeilenende produzierte dann natürlich Druckmüll, weil zwar eine Zeile weiter gesprungen wird, aber der Text nicht wieder am Zeilenanfang beginnt, sondern senkrecht unterhalb der bisher erreichten Druckposition weitergeht. Und ein Mac-System mit nur CR am Zeilenende druckt alle Zeilen in eine einzige, ohne das Papier weiterzuschieben.
Deshalb konnte man Drucker entsprechend konfigurieren, so dass sie beispielsweise ein einzelnes LF wie CR/LF behandeln.
Wenn jetzt deine Applikation an mancher Stelle nur ein CR ausgibt, hätte das "Zeilen zusammengequetscht".
Andererseits: Werden Matrixdrucker heutzutage auch immer noch im Textmodus betrieben, oder ist da nicht vielleicht auch ein Grafikmodus aktiv, der pro Zeile jede der 24 (oder sind's mehr) Nadeln individuell ansteuert, und jede Zeile nahtlos aneinanderreiht. Dann könnte es durchaus sein, dass diese Nahtstelle zwischen zwei Druckerzeilen durch mechanische Unzulänglichkeiten mal ungünstig überlappt oder auseinander bleibt. Andererseits würden dann keine Nadelpunkte fehlen, die eine 8 zur 0 werden lassen.
- Sven Rautenberg