Direkt Druck Zuweisung

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Direkt Druck Zuweisung

Beitrag von Rudolf »

Hallo Leute,
habe wieder einmal eine Frage zum direkten Drucken:
Mit dem Beispiel das ich hier gefunden habe, funktioniert es ganz gut. Ich müsste nur den Drucker direkt zuweisen ohne den Druckerdialog aufzurufen.
Wer weiss wie ich den Druckernamen übergebe ?
Grüsse
Rudolf


function printtest()
******************************************************************
LOCAL oPrinter
oDlg := XbpPrintDialog():new()
oDlg:create()
oPrinter := oDlg:display()
oDlg:destroy()
IF oPrinter <> NIL

set printer to OBJECT oPrinter

set printer on
set device to printer
set console off

? "Text 1 " + drz("GROSS") + " Text 2 " + drz("FETT") + " Text 3 " + drz("BREIT")

set printer off
set printer to
set device to screen
set console on
oPrinter:destroy()

ENDIF
return .t.


function drz(cZ)
*** ***********************************************************
do case
case cZ == "CUTTER"
return (chr(27)+"m")
case cZ == "GROSS"
return (chr(27)+"!"+chr(48))
case cZ == "NORMAL"
return (chr(27)+"!"+chr(0))
case cZ == "FETT"
return (chr(27)+"!"+chr(8))
case cZ == "BREIT"
return (chr(27)+"!"+chr(32))
endcase
return ""
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Rudolf,

schau mal bei XbpPrinter():create(cPrinterName) nach ...
wenn du den Rechner kennst, kannst du einfach den Windowsnamen des Druckers benutzen. Oder du legst mit

Code: Alles auswählen

cPrinterName := NIL
oP := XbpPrinter():new()
aPrinter := oP:list()
if len(aPrinter)>0 
   for x := 1 to len(aPrinter)
        if "CANON" $ upper(aPrinter(x)) // oder wie heist er sonst ?
           cPrinterName := aPrinter(x)
        endif 
   next
endif 
oP:create(cPrinterName) // wurde ein gewünschter gefunden oder einfach standard ...
natürlich kannst du in deinem Programm auch die Liste der installierten Drucker anzeigen und einen als Vorauswahl auswählen lassen, den du dann z.B. aus einer INI ließt. Bei INI muß man auf Leerzeichen aufpassen.
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Beitrag von Rudolf »

Hallo Hubert,
vielen Dank, funktioniert jetzt einwandfrei.
Grüsse
Rudolf
Antworten