Clipper und Laserdrucker

Still in use?

Moderator: Moderatoren

Antworten
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Clipper und Laserdrucker

Beitrag von sherlogg »

Hallo, liebe Foren Mitglieder,

Clipper is still in use.

Ein Kunde von mir arbeitet seit 1988 mit einem von mir in Clipper programmierten ERP. Also, immer noch. Da es stabil läuft, muss ich ganz selten ran. Aber gerade ist es wieder mal soweit.

Die Ausdrucke der Rechnungen, Gutschriften, Lieferscheine, usw. erfolgt auf einem Laserdrucker (LJ-kompatibel) und funktioniert auch perfekt. In einiger Zeit steht ja bei den Banken die Umstellen auf den IBAN und BIC Zahlungsverkehr an. Jetzt möchte mein Kunde schon vorab, die entsprechenden Daten auf der Rechnung mit ausdrucken. Mein Idee war es, dass in einer Umrahmung zu machen. Aufgrund der Informationsfülle auf der Rechnung, arbeite ich beim Ausdruck mit einer relativ hohen Komprimierung (CHR(27)+"(s16.6H") um die Zeilenbreite optimal auszunutzen. Nun habe ich aber beim Ausdruck von Zeile zu Zeile immer einen winzigen Leerraum zwischen den Rahmenzeichen. Schalte ich die Komprimierung ab, sieht es perfekt aus. Komprimierung abschalten geht aber nicht, da ich nicht mal die Hälfte der benötigten Infos auf die Formulare bekomme.

Eventuell hat einer von euch das gleiche Problem gehabt und es gelöst. Ich sitze schon 2 Tage dran und sehe wahrscheinlich den Wald vor lauter Bäumen icht mehr. Hochstellen und Zeilen verschieben bringt nichts, weil links von dem Bereich der komplette Adressbereich der Rechnung ist.

Hier mal ein kleines Testprogramm, mit dem ich versuche dem Problem auf die Spur zu kommen:

Code: Alles auswählen

LOCAL nI,cESC1,cESC2,cESC3,cESC4,cESC5,cESC6

SET PRINT TO LPT1
SET CONSOLE OFF
SET PRINT ON

cESC1 := CHR(27)+"E"                // Initialisierung
cESC2 := CHR(27)+"(s0P"           // Proportionalschrift 0=Nein, 1=Ja
cESC3 := CHR(27)+"(s3T"	// Schriftart Courier
cESC4 := CHR(27)+"(s16.6H"      // Komprimierung
cESC5 := CHR(27)+"(s10V"         // 10 Pitch
cESC6 := CHR(27)+"*t300R"	// Zeichendichte
cESC7 := CHR(27)+"(s10H"        // Komprimierung auf Standard

?? cESC1
?? cESC2
?? cESC3
?? cESC4
?? cESC5
?? cESC6

? "Rahmen drucken"
?
?  CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
?  CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
?  CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
?  CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
?  CHR(192)+REPLICATE(CHR(196),52)+CHR(217)

?? cESC7        // Komprimierung auschalten
?
?  CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
?  CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
?  CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
?  CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
?  CHR(192)+REPLICATE(CHR(196),52)+CHR(217)

?? cESC1
EJECT

SET PRINT OFF
SET CONSOLE ON
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von sherlogg »

So sieht das dann aus ...
Dateianhänge
Rahmen.jpg
Rahmen.jpg (65.19 KiB) 21540 mal betrachtet
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von brandelh »

Ich vermute mal dass es ein PCL-Drucker ist oder ?

1. Möglichkeit wäre das "merken" der Eckparameter und das Drucken des Rahmens mit graphischen PCL-Befehlen (habe ich nie gemacht, aber ich meine sowas schon gesehen zu haben...).
2. Möglichkeit wäre die Zeilen doppelt zu drucken, einmal komprimiert nur den Text, danach entweder die Zeilen zurück, oder nur in der Zeile zurück und ohne Comprimierung die Boxzeichen.

Wichtig, dabei darf man aber nicht mit @ SAY drucken, da sonst ein Seitenvorschub ausgelöst wird wenn man kleinere Werte als zuvor übergibt.
Ein Laser baut immer erst die Seite auf bevor er druckt. Grundsätzlich kann man viele male die gleiche Zeile mit unterschiedlicher Schriftgröße drucken.
Gruß
Hubert
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 188
Registriert: Di, 24. Jul 2007 9:17

Re: Clipper und Laserdrucker

Beitrag von Scarmo »

Hallo Sherlogg

Ich denke, dies hängt mit dem entsprechenden Zeichensatz des Druckers zusammen. Das heisst, beispielsweise der vertikale Strich ist bei der 16 CPI-Schrift kürzer wie bei der 12er-Schrift. Ich denke jedoch, dass dies Modell-abhängig ist. Es kann deshalb sein, dass auf einem Drucker das Ganze klappt (ohne Zwischenraum) und auf einem anderen Modell gibt's eben diese Lücke.

Ich glaube jedoch kaum, dass Du dies (ohne den Zeilen-Abstand zu verringern) lösen kannst.

Grüsse
Marco
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von sherlogg »

brandelh hat geschrieben:Ich vermute mal dass es ein PCL-Drucker ist oder ?

1. Möglichkeit wäre das "merken" der Eckparameter und das Drucken des Rahmens mit graphischen PCL-Befehlen (habe ich nie gemacht, aber ich meine sowas schon gesehen zu haben...).
2. Möglichkeit wäre die Zeilen doppelt zu drucken, einmal komprimiert nur den Text, danach entweder die Zeilen zurück, oder nur in der Zeile zurück und ohne Comprimierung die Boxzeichen.

Wichtig, dabei darf man aber nicht mit @ SAY drucken, da sonst ein Seitenvorschub ausgelöst wird wenn man kleinere Werte als zuvor übergibt.
Ein Laser baut immer erst die Seite auf bevor er druckt. Grundsätzlich kann man viele male die gleiche Zeile mit unterschiedlicher Schriftgröße drucken.
Danke für die Antwort.

Jepp, ist ein PCL. Das mit dem doppelt drucken habe ich schon ausprobiert. Funktioniert leider nicht sauber. Was ich noch testen werde ich das Pixelgenaue ansteuern der Rahmenzeichen. Ist aber halt ein riesen Ding.

Gruß, Dieter
Zuletzt geändert von sherlogg am Fr, 04. Okt 2013 18:50, insgesamt 1-mal geändert.
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von sherlogg »

Scarmo hat geschrieben:Hallo Sherlogg

Ich denke, dies hängt mit dem entsprechenden Zeichensatz des Druckers zusammen. Das heisst, beispielsweise der vertikale Strich ist bei der 16 CPI-Schrift kürzer wie bei der 12er-Schrift. Ich denke jedoch, dass dies Modell-abhängig ist. Es kann deshalb sein, dass auf einem Drucker das Ganze klappt (ohne Zwischenraum) und auf einem anderen Modell gibt's eben diese Lücke.

Ich glaube jedoch kaum, dass Du dies (ohne den Zeilen-Abstand zu verringern) lösen kannst.

Grüsse
Marco
Hallo Marco, danke für die Antwort.

Hmm, stimmt. Habe ich auch schon mal gesehen. Leider habe ich nur einen Lexmark zum testen. Leider sind die Drucker heutzutage, zumindest was Kompatibilität betrifft, nicht immer sehr zuverlässig.

Gruß, Dieter
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von sherlogg »

Hat mir keine Ruhe gelassen und ich habe die Lösung gefunden.

Beim Ausdruck kann in einer Zeile des Ausgabestring mit unterschiedlichen Positionierung gearbeitet werden.

Hier nochmal das Beispiel:

Die erste Box ist noch fehlerhaft und bei der Zweiten positioniere ich die Zeilen direkt Zeilen- und Spaltenbezogen und im zweiten Segment des Ausgabestring wird im Zeilenbereich grafisch positioniert. Ist jetzt nicht ganz so aufwändig, wie ich dachte.

Code: Alles auswählen

LOCAL nI,cESC1,cESC2,cESC3,cESC4,cESC5,cESC6,cESC7,cESC8

SET PRINT TO LPT1
SET CONSOLE OFF
SET PRINT ON

cESC1 := CHR(27)+"E"            // Initialisierung
cESC2 := CHR(27)+"(s0P"         // Proportionalschrift 0=Nein, 1=Ja
cESC3 := CHR(27)+"(s3T"		// Schriftart Courier
cESC4 := CHR(27)+"(s16.6H"      // Komprimierung
cESC5 := CHR(27)+"(s10V"        // 10 Pitch
cESC6 := CHR(27)+"(s10H"        // keine Komprimierung
cESC7 := CHR(27)+"*t300R"	// Zeichendichte
cESC8 := CHR(27)+"&l4C"        	// Vertikale Bewegung - default = 8

?? cESC1
?? cESC2
?? cESC3
?? cESC4
?? cESC5
// ?? cESC6
?? cESC7
// ?? cESC8

? "Rahmen drucken"
?
?
? CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
? CHR(179)+" "+REPLICATE("v",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("v",50)+" "+CHR(179)
? CHR(192)+REPLICATE(CHR(196),52)+CHR(217)

? CHR(27)+"&a14R"+CHR(27)+"&a02C"+"Zeile 1"+CHR(27)+"*p0700Y"+CHR(27)+"&a20C"+CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
? CHR(27)+"&a15R"+CHR(27)+"&a02C"+"Zeile 2"+CHR(27)+"*p0731Y"+CHR(27)+"&a20C"+CHR(179)+" "+REPLICATE("v",50)+" "+CHR(179)
? CHR(27)+"&a16R"+CHR(27)+"&a02C"+"Zeile 3"+CHR(27)+"*p0762Y"+CHR(27)+"&a20C"+CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
? CHR(27)+"&a17R"+CHR(27)+"&a02C"+"Zeile 4"+CHR(27)+"*p0793Y"+CHR(27)+"&a20C"+CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
? CHR(27)+"&a18R"+CHR(27)+"&a02C"+"Zeile 5"+CHR(27)+"*p0824Y"+CHR(27)+"&a20C"+CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
? CHR(27)+"&a19R"+CHR(27)+"&a02C"+"Zeile 6"+CHR(27)+"*p0855Y"+CHR(27)+"&a20C"+CHR(179)+" "+REPLICATE("v",50)+" "+CHR(179)
? CHR(27)+"&a20R"+CHR(27)+"&a02C"+"Zeile 7"+CHR(27)+"*p0886Y"+CHR(27)+"&a20C"+CHR(192)+REPLICATE(CHR(196),52)+CHR(217)

?? cESC1
EJECT

SET PRINT OFF
SET CONSOLE ON
Rahmenx.jpg
Rahmenx.jpg (148.02 KiB) 21521 mal betrachtet
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von brandelh »

Zu meinen Clipper-Zeiten hatte ich eine Fehlerbehandlungsroutine, die
?? chr(13) an den Drucker gesandt hat, da - zumindest die damaligen Nadeldrucker - die Druckzeile nach einem Fehler häufig wiederholten und dafür musste der Druckkopf zurück.
Genauso müsste es auch bei deinem Laser funktionieren, wobei du es ja jetzt hinbekommen hast wenn ich das richtig lese. Ich meine das etwas so:

Code: Alles auswählen

?? cRandInBlank+cMiniSchriftEin+cText+MiniSchriftAus+chr(13)+cRandBisRahmen+cRahmen+chr(13)+chr(10)
Ohne Zweifel ist der Abschied dieser Druckersteuerung hin zu grafischem Druck eines der Highlights von Xbase++
Gruß
Hubert
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von sherlogg »

brandelh hat geschrieben:Zu meinen Clipper-Zeiten hatte ich eine Fehlerbehandlungsroutine, die
?? chr(13) an den Drucker gesandt hat, da - zumindest die damaligen Nadeldrucker - die Druckzeile nach einem Fehler häufig wiederholten und dafür musste der Druckkopf zurück.
Genauso müsste es auch bei deinem Laser funktionieren, wobei du es ja jetzt hinbekommen hast wenn ich das richtig lese. Ich meine das etwas so:

Code: Alles auswählen

?? cRandInBlank+cMiniSchriftEin+cText+MiniSchriftAus+chr(13)+cRandBisRahmen+cRahmen+chr(13)+chr(10)
Ohne Zweifel ist der Abschied dieser Druckersteuerung hin zu grafischem Druck eines der Highlights von Xbase++
Da hast Du wohl recht. Gott sei Dank bin ich nicht mehr allzu oft mit Änderungen in diesem Programm konfrontiert und der Zeitplan meines Kunden sieht einen Wechsel auf ein anderes ERP innerhalb der kommenden 2 Jahre vor. Das ist überschaubar.

Danke nochmal für die Antworten.
Gruß, Dieter
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Clipper und Laserdrucker

Beitrag von AUGE_OHR »

brandelh hat geschrieben:Ohne Zweifel ist der Abschied dieser Druckersteuerung hin zu grafischem Druck eines der Highlights von Xbase++
na ja ... wenn es nur ums drucken geht könnte man auch VOUCH http://www.vouchcac.com/vouch32/vouch32.htm verwenden.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Clipper und Laserdrucker

Beitrag von AUGE_OHR »

sherlogg hat geschrieben:... und der Zeitplan meines Kunden sieht einen Wechsel auf ein anderes ERP innerhalb der kommenden 2 Jahre vor.
arbeitet dein Kunde noch mit Windows XP ?

gehe mal los und kaufe einen neuen PC ... da wirst du vermutlich nur 64bit Windows 8 als OS() bekommen womit Cl*pper (16-bit) nicht läuft.
Drucker die ESC Sequenzen ( Epson Modus ) verarbeiten werden auch immer weniger ... die billigen können nur GDI.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von brandelh »

Mit DOSBOX laufen Clipper Programme auch unter Win 7 64-Bit, warum sollte das unter Win 8 anders sein ... oder eine virtual box ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Clipper und Laserdrucker

Beitrag von AUGE_OHR »

hi,

klar kann man Cl*pper mit DOSBOX betreiben ...aber auch damit "arbeiten" ?
mich stört dabei die Bildwiederholungsrate von 50Hz wo ich nach einigen Minuten Kopfschmerzen bekomme.

für VirtualBox benötigst du ein zusätzliches OS und VirtualPC gibt es (offiziell) nicht mehr für Windows 8 PRO.
auch in der latest vBox Version 4.2.18 funktioniert die "nahtlose" Bildschirm Skalierung nicht so wie ich mir das vorstelle.
zu Cl*pper Zeiten waren die Monitore im 4:3 Format bei 1024 x 768. wenn man aber 1920 x 1080 hat
und vBox mit 1024 x 768 läuft dann kann man die Zeichen kaum erkennen.

worum es mir nun geht : 2 Jahre sind nicht viel Zeit um eine umfangreiche ERP Application auf 32 / 64 bit umzustellen.
spätesten wenn der PC kaputt geht wird der Kunde vor einem Problem stehen denn wie ich schon sagte bekommt man keinen PC mehr mit BIOS und OS() < Win8.
nun kann man auch kein anderes ( Windows ) OS auf solchen PCs installieren denn Win8 hängt sich bei UEFI irgendwo ein :(
gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von Rolf Ramacher »

also ich kann nur raten, sich von Clipper zu verabschieden und darauf keine Zeit mehr zu verschwenden. Anpacken umsetzen muß man es sowieso. Und die Kunden müssen das auch mal einsehen, das alte PRogramm auf neuen PC nicht mehr funktionsfähig sind.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von brandelh »

sherlogg hat geschrieben:Gott sei Dank bin ich nicht mehr allzu oft mit Änderungen in diesem Programm konfrontiert und der Zeitplan meines Kunden sieht einen Wechsel auf ein anderes ERP innerhalb der kommenden 2 Jahre vor. Das ist überschaubar.
er hat doch geschrieben, dass das Programm durch ein anderes ersetzt werden soll ...
Gruß
Hubert
Ritchie39
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 30
Registriert: Mo, 10. Apr 2017 16:26
Danksagung erhalten: 1 Mal

Re: Clipper und Laserdrucker

Beitrag von Ritchie39 »

Hallo Miteinander,
genauso wie man bereits Windows 7 als 32-Bit Version kaufen konnte, gibt es auch Windows 10 als 32-Bit Version. Und Clipper "is still going strong ..." (s. Johnny Walker) :wink:
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von brandelh »

es kommt halt auch drauf an was man damit macht ;-)

Wobei DOS unter Win64 geht nicht ?

NÖ das stimmt so nicht, nur M$ liefert es nicht !
Die DOSBOX hat bei mir selbst bei alten Spielen oft funktioniert, ein Clipper Programm läuft darunter immer.

Aber ehrlich gesagt möchte ich mich nicht mehr darauf beschränken müssen ;-)
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Clipper und Laserdrucker

Beitrag von Rudolf »

Hallo,
ich habe noch die ESC40 Lib, mit der kann man den Laserdrucker vernünftig ansteuern und Grafik wie Linien einfach darstellen, kann sie bei Bedarf abgeben.
Grüße
Rudolf
Antworten