Suche Lösung zum Drucken über USB

21/03/2010 - 12:20 von Jürgen Strobel | Report spam
Hallo Freunde,
ich habe für unseren Verein ein kleines Programm zum Drucken von Bons
geschrieben.
Das Drucken über die Parallelschnittstelle funktioniert wirklich
einwandfrei, Ich benütze dazu folgende Subroutine:

*
* Ansteuerung des Bondruckers über LPT1:
*
* p1 = Anzahl Bons
* p2 = Artikeltext
* p3 = Hinweis
* p4 = Schlusstext
*

PARAMETERS p1, p2, p3, p4
hnr = FOPEN("LPT1:",12) && Handle-Nummer
FPUTS(hnr,CHR(27) + "a1") && zentriert ausdrucken
FPUTS(hnr,CHR(27) + "!" + CHR(0)) && Font A

DO WHILE p1 > 0
FPUTS(hnr,CHR(27) + "E")
FPUTS(hnr,ALLTRIM(einstellungen.veranstaltung))
FWRITE(hnr,CHR(27) + "E" + CHR(0))
FPUTS(hnr,ALLTRIM(einstellungen.verein))
FPUTS(hnr,CHR(27) + "!" + CHR(56)) && Großschrift einschalten
FPUTS(hnr,p2)
FPUTS(hnr,CHR(27) + "!" + CHR(0)) && Großschrift ausschalten
FPUTS(hnr,p3)
FPUTS(hnr,CHR(13))
FPUTS(hnr,p4)
FPUTS(hnr,CHR(13))
FPUTS(hnr,CHR(29) + CHR(86) + CHR(66)) && Abschneiden, partial
p1 = p1 -1
ENDDO

FCLOSE(hnr)


Nun ist es jedoch so, dass moderne Notebooks keine Parallelschnittstelle
mehr besitzen. Deshalb suche ich eine Lösung um dasselbe über eine
USB-Schnittstelle auszudrucken.
Ich habe für den Drucker (Epson TM-T88) den neuesten Druckertreiber
(APD_409aSA) installiert. Doch alle meine Bemühungen über diesen richtig zu
drucken, sind bisher fehlgeschlagen.

?, ?? und ??? macht nicht, was ich will. Beim Senden von ESC-Codes, z. B.
CHR(27) + "a1", welche zentriertes Drucken initiieren soll, wird auf dem
Drucker ein kleines Quadrat und der Text "a1" ausgegeben. Offensichtlich
làsst sich auf diese Art dem Drucker (mit ??? unter Umgehung des
Druckertreibers) der ESC-Code nicht beibringen.

Dann habe ich es mit dem Etikettendesigner versucht, auch wenn dies
langsamer geht. Doch selbst wenn ich in den Druckertreibereinstellungen die
Papierlànge auf 70mm setze, wird immer ein Streifen ausgedruckt, welcher der
Höhe einer A4-Seite entspricht.

Nun zu meiner Frage: Hatte jemand schon einmal ein àhnliches Problem? Wie
habt Ihr es gelöst? Es sollte doch ungefàhr so funktionieren:

*
* Ansteuerung des Bondruckers über Advanced Printer Treiber von Epson:
*
* p1 = Anzahl Bons
* p2 = Artikeltext
* p3 = Hinweis
* p4 = Schlusstext
*
PARAMETERS p1, p2, p3, p4
SET PRINTER TO NAME einstellungen.druckername
SET CONSOLE OFF
SET PRINTER ON

??? CHR(27) + CHR(64) && Drucker initialisieren
??? CHR(27) + "a1" && Text zentrieren
??? CHR(27) + "!" + CHR(0) && Zeichensatz

? "Test"

* ??? CHR(27) + "E" + CHR(13)
* ??? ALLTRIM(einstellungen.veranstaltung) + CHR(13)
* ??? CHR(27) + "E" + CHR(0) + CHR(13)
* ??? ALLTRIM(einstellungen.verein) + CHR(13)
* ??? CHR(27) + "!" + CHR(56) + CHR(13) && Großschrift einschalten
* ? CHR(13)
* ??? p2 + CHR(13)
* ??? CHR(27) + "!" + CHR(0) + CHR(13) && Großschrift ausschalten
* ??? p3 + CHR(13)
* ? CHR(13)
* ??? p4 + CHR(13)
* ?
* ??? CHR(29) + CHR(86) + CHR(65) && Abschneiden, partial

SET PRINTER OFF
SET PRINTER TO
SET CONSOLE ON

Ich taste mich durch Setzen oder Entfernen des * in den Zeilen langasam
heran, aber es kommt immer wieder etwas anderes heraus, machmal nicht
reproduzierbar!!!!!

Und noch ein paar Fragen:

? sendet ein CR und LF vor dem Text. Stimmt das? Also müsste man doch
schreiben: ?? "Test" + CHR(13) + CHR(10). Geht aber so auch nicht ;-((
?? sendet kein LF und CR, richtig?
Was ist dann der Unterschied zwischen ?? und ???

Wo kann man denn mehr darüber erfahren, nachlesen, oder sogar Beispiele
finden?

Danke schon mal und einen schönen Sonntag noch
Jürgen
 

Lesen sie die antworten

#1 Jochen Wilberding
21/03/2010 - 12:39 | Warnen spam
Jürgen Strobel schrieb:

ich habe für unseren Verein ein kleines Programm zum Drucken von Bons
geschrieben.
Das Drucken über die Parallelschnittstelle funktioniert wirklich
einwandfrei, Ich benütze dazu folgende Subroutine:


...
Nun ist es jedoch so, dass moderne Notebooks keine Parallelschnittstelle
mehr besitzen. Deshalb suche ich eine Lösung um dasselbe über eine
USB-Schnittstelle auszudrucken.
Ich habe für den Drucker (Epson TM-T88) den neuesten Druckertreiber
(APD_409aSA) installiert. Doch alle meine Bemühungen über diesen richtig zu
drucken, sind bisher fehlgeschlagen.



den USB-Drucker im Netzwerk freigeben und dann per

net use lpt1 \\MeinPC\USBDrucker

den LPT damit verbinden.

sollte wahrscheinlich klappen.


bis die tage
jochen

PS: bitte melden Sie sich, wenn Sie diese Nachricht NICHT erhalten haben!

Ähnliche fragen