Seite 1 von 1

Bitmap in Farbe drucken

Verfasst: Fr, 23. Jan 2015 11:36
von Magic
Juten Tag Allerseits!

Ich habe hier ein altes Clipper Programm dass ich anpassen muss.
Aus dem Programm wird ein Formular gedruckt, welches u.a. eine farbige .BMP enthält.
Jetzt kenn ich mich mit Drucken in Verbindung mit Clipper nicht so aus :roll:
Das Ding wird immer S/W bzw. in Graustufen (so genau kann ich es nicht bestimmen) gedruckt.

Frage(n):
* ist Drucken in Farbe mittels Clipper überhaupt möglich?
* ggf. an welcher Stelle musste ich da suchen?
Habe schon den Quellcode durchforstet, stoße aber auf keinen Hinweis der irgendwas mit Farbe bzw. Graustufen zu tun hat.

Hätte vielleicht jem. für mich einen Tipp?

Re: Bitmap in Farbe drucken

Verfasst: Fr, 23. Jan 2015 13:45
von brandelh
Clipper und andere DOS Programme konnten nur dann Bilder drucken, wenn der Drucker das unterstützt hat (heute unterstützten alle zumindest Graustufen).
Mit einem s/w Nadeldrucker (IBM Proprinter) waren die Möglichkeiten natürlich deutlich schlechter als mit einem Epson ESC/P oder PCL4 Farblaser ;-)

Früher gab es zu jedem Drucker ein dickes Handbuch und so ab der Mitte gab es die Info über die nötigen SteuerZeichen (codes) für verschiedene Funktionen (Fett ein/aus, Unterstreichen ein/aus etc.), so sah in Clipper (oder auch Basic ...) eine Druckzeile aus:

? chr(27)+"!0132434"+chr(5)+cMeineTextVariable ... // chr(27) => ESC ist die Einleitung eines Befehls auf einem ESC/P (Epson) Drucker ... der Rest einfach ein Beispiel ohne Sinn ;-)

Sprich, der Drucker hängt an LPT1 (alte Druckerschnittstelle), kann selbst eine bestimmte Druckersprache (ESC/P, PCL) und du musst genau die richtige Bytefolge generieren und an den LPTx Port senden. Eine Grafik musste meinst selbst in 8 oder 16/24 Senkrechte Punkte der aktuellen Zeichenposition einer Druckzeile umgerechnet werden, da kommt freude auf ;-)

Aus heutiger Sicht eine Sklavenarbeit wenn man XbpPrinter Objekte (egal ob nativ oder über meine Klasse) gewohnt ist.
Viele heutige Drucker hängen an USB Schnittstellen und die Druckertreiber unter Windows unterstützten ausschließlich Windowsdrucken.

Wie so häufig ist meine Empfehlung mit Xbase++ auf die Schnelle umsetzen: LOGIK und notfalls Optik übernehmen, aber fürs Drucken die neuen Möglichkeiten nutzen.

Ich habe hier übrigens noch eine DBF mit verschiedenen Druckersteuercodes verschiedener Drucker rumliegen ... falls es doch Clipper sein muss ;-)
Grafiken habe ich unter Clipper nie gedruckt !

PS: die Steuerzeichen muss man im Programm in jeweils 3 Zeichen aufteilen und mit chr(ASC(c3ZeichenFolge1)) + chr(ASC(c3ZeichenFolge2)) + chr(ASC(c3ZeichenFolgeN)) übersetzen
Wir hatten damals auch Termodrucker, die ohne viel Aufwand aus dieser Zeile einen perfekt aussehenden Text gedruckt haben, die Nadeldrucker waren meist nicht so schön ;-)

Code: Alles auswählen

set console off
set printer to LPT1 // auch auf Netzwerkdrucker nach NET USE LPT2 \\server\drucker
set printer on 
? "Hallo Welt, das ist mein erster Ausdrucke"
set printer off
set printer to 
set console on

Re: Bitmap in Farbe drucken

Verfasst: Fr, 23. Jan 2015 13:50
von Magic
Ich muss mir das wohl kommende Woche genauer anschauen.
Bisher ist es so, dass ich einen beliebigen Windows Drucker auswählen kann.

Re: Bitmap in Farbe drucken

Verfasst: Fr, 23. Jan 2015 13:58
von brandelh
Aus einem Clipper Programm ?

Wenn der Windowsdruckertreiber den DOS Druck unterstützt (meist teuere PCL Laser) und man diesen an LPT hängt, oder im Netz freigibt und per NET USE zuordnet,
dann kann Clipper diesen nutzen. Wenn man jeden Billigdrucker nehmen kann ohne auf LPT zu achten, dann ist das sicher kein Clipper-Programm mehr.

Re: Bitmap in Farbe drucken

Verfasst: Fr, 23. Jan 2015 22:22
von AUGE_OHR
Magic hat geschrieben:Frage(n):
* ist Drucken in Farbe mittels Clipper überhaupt möglich?
* ggf. an welcher Stelle musste ich da suchen?
Habe schon den Quellcode durchforstet, stoße aber auf keinen Hinweis der irgendwas mit Farbe bzw. Graustufen zu tun hat.
von welcher Version Cl*pper sprechen wir ?

ab der Version v5.x gab "Sound & Vision" welches als 3-PP LIB auch "Grafik" konnte.
in der Version v5.3 gab es die LightLIB die grafische Elemente hatte aber ob man damit drucken konnte ...
nun gibt es auch noch Vouch32 womit man Cl*pper mit Windows Elementen ausstatten konnte und auch auf die Windows Drucker Zugriff hat.

also siehe mal in deine *.LNK ob dort 3-PP LIBs angegeben sind.

auch stellt sich dann die Frage "was" für ein Image du ausdrucken willst ?
Ich hatte damals schon Problem mit den verschiedenen Version von BMP wobei MS$ Paint (von W98se) die "richtigen" lieferte.

Re: Bitmap in Farbe drucken

Verfasst: Mo, 26. Jan 2015 10:07
von Magic
brandelh hat geschrieben:Aus einem Clipper Programm ?
AUGE_OHR hat geschrieben:von welcher Version Cl*pper sprechen wir ?
Ja, Clipper 5.3.
AUGE_OHR hat geschrieben:also siehe mal in deine *.LNK ob dort 3-PP LIBs angegeben sind.
So wie ich es sehe könnte diese Interessant sein:

Code: Alles auswählen

@clprofiw.inc

LIB CLIP4WIN
LIB TOPCLASS
LIB C4WCLASS

LIB CLIPPER
LIB EXTEND
LIB TERMINAL
LIB DBFNTX
AUGE_OHR hat geschrieben:auch stellt sich dann die Frage "was" für ein Image du ausdrucken willst ? Ich hatte damals schon Problem mit den verschiedenen Version von BMP wobei MS$ Paint (von W98se) die "richtigen" lieferte.
Wusste nicht, dass es da so gravierende Unterschiede gibt.

Re: Bitmap in Farbe drucken

Verfasst: Mo, 26. Jan 2015 10:23
von brandelh
Sorry, ich habe mit der letzten Clipper 5.x (ich meine 5.2e ?) aufgehört.

Soweit ich weiß ist Clip4Win eine Zusatzbibliothek, mit der man Windows EXE generieren konnte (vermutlich 16 bit für 3.1 ?).
Die beiden anderen Tools könnten auch speziellen code enthalten ...

Meine Aussagen betreffen ausschließlich Clipper 5.x PUR, sind also für dein Problem unerheblich.

Re: Bitmap in Farbe drucken

Verfasst: Mo, 26. Jan 2015 19:13
von AUGE_OHR
Magic hat geschrieben:Ja, Clipper 5.3.
die Version wird von Xbase++ nicht "voll" unterstützt.
Magic hat geschrieben:So wie ich es sehe könnte diese Interessant sein:

Code: Alles auswählen

@clprofiw.inc

LIB CLIP4WIN
LIB TOPCLASS
LIB C4WCLASS

LIB CLIPPER
LIB EXTEND
LIB TERMINAL
LIB DBFNTX
alles klar : Clip4Win
ich müsste mal im Handbuch nachsehen wie/ob man Bitmaps in Farbe drucken kann
Magic hat geschrieben:Wusste nicht, dass es da so gravierende Unterschiede gibt.
am Anfang hiess das DOS Programm doch "PaintBrush" und hat mit PCX Datei gearbeitet welche 8bit(?) Farbtiefe hatte.
in Win95 hiess es IMHO auch noch so hatte aber BMP als Extension bekommen und das Format konnte Cl*pper mit den 3-PP LIBs.

bei Clip4Win gehe ich davon aus das es 16bit Farbtiefe können sollte, also evtl. deine aktuellen Bilder runter konvertieren.

Re: Bitmap in Farbe drucken

Verfasst: Di, 27. Jan 2015 11:04
von Magic
AUGE_OHR hat geschrieben:bei Clip4Win gehe ich davon aus das es 16bit Farbtiefe können sollte, also evtl. deine aktuellen Bilder runter konvertieren.
Das habe ich bereits probiert; ohne Erfolg.
AUGE_OHR hat geschrieben:ich müsste mal im Handbuch nachsehen wie/ob man Bitmaps in Farbe drucken kann
Das wäre toll, denn ich habe hierfür nichts mehr vorliegen.

Ich gehe immer noch davon aus, dass es im Programm einen "Schalter" oder Ähnliches geben muss, mit dem es gesteuert wird, aber egal wie oft ich das durchsuche finde ich nichts Verdächtiges.