Seite 1 von 1

Drucken aus vorher festgelegter Papierkassette

Verfasst: 05.02.2008 17:51
von MK_2007
Hallo zusammen,
ich habe hier im Forum schon viele Anregungen, Tips und Lösungen finden können. Dafür erst mal vielen Dank.
Nun wende ich mich mit einer Frage an Euch.
Ich habe einen Drucker (Canon iR2270) mit 4 Papierkassetten.
In jeder liegen unterschiedliche Kopfbögen. Nun möchte ich aus meinem Programm je nach Selektion eines Dokumentes, dass automatisch aus der richtigen Kassette gedruckt wird ohne das der Anwender sie einstellen muß.
Wir programmiere ich diesen Aufruf? Schon mal vielen Dank für Eure Hilfe.

Verfasst: 07.02.2008 18:55
von ABBKlaus
Du könntest dir mal die Printer_Lib anschauen :wink:

Sollte kein Problem sein die 4 Papierkassetten damit direkt anzusteuern.

Code: Alles auswählen

Option$="PAPERSIZE="+Str(#DMPAPER_A4)+","
Option$+"ORIENTATION="+Str(#DMORIENT_PORTRAIT)+","
;Option$+"DEFAULTSOURCE="+ID$

Structure StrBinnames
  Name.s
  ID.s
EndStructure

NewList Bins.StrBinnames()

Print_OpenPrinter("",Option$)
  Sep$="|"
  Name$=Print_GetDeviceCapabilities(#DC_BINNAMES,Sep$)
  ID$=Print_GetDeviceCapabilities(#DC_BINS,Sep$)
  Anzahl=Val(StringField(Name$,1,Sep$))
  For i=1 To Anzahl
    AddElement(Bins())
    Bins()\Name=StringField(Name$,i+1,Sep$)
    Bins()\ID=StringField(ID$,i+1,Sep$)
  Next
  
  ForEach Bins()
    Debug Bins()\ID+" : "+Bins()\Name
  Next
Hier zum Beispiel die Kassetten eines Kyocera FS-1750+ :
  • 15 : Automatisch auswählen
    282 : Kassette 1 (Internal)
    281 : Kassette 2
    280 : Kassette 3
    4 : Mehrzweckeinzug
    279 : Umschlageinzug
    278 : Massenzufuhr
    277 : Normalpapier
    276 : Transparentfolie
    275 : Vorgedruckt
    274 : Etiketten
    273 : Feines Schreibpapier
    272 : Wiederverwertet
    271 : Pergament
    270 : Rau
    269 : Briefkopf
    268 : Farben
    267 : Vorgelocht
    266 : Umschlag
    265 : Kartenstapel
    264 : Benutzerdefiniert 1
    263 : Benutzerdefiniert 2
    262 : Benutzerdefiniert 3
    261 : Benutzerdefiniert 4
    260 : Benutzerdefiniert 5
    259 : Benutzerdefiniert 6
    258 : Benutzerdefiniert 7
    257 : Benutzerdefiniert 8
MfG Klaus

Verfasst: 10.02.2008 11:54
von PBFetischist
Eine Frage an ABBKLaus direkt...

Ich benutze die Printerlib seit langem, aber seit der PB 4.20 Beta 2 habe ich ein Problem. Folgender Code läuft sich zu tode, bis zum Stack Overflow.

Code: Alles auswählen

Procedure ListPrinters()
  Print_EnumPrinters()
  For InstalledPrinters = 0 To Print_CountPrinters() - 1
    Debug Print_EnumPrinterName(InstalledPrinters)
  Next
EndProcedure

ListPrinters()
Interessant dabei:

Lässt du den Code nicht innerhalb einer Procedure laufen, dann gehts.

Code: Alles auswählen

  Print_EnumPrinters()
  For InstalledPrinters = 0 To Print_CountPrinters() - 1
    Debug Print_EnumPrinterName(InstalledPrinters)
  Next
Ist das jetzt ein Fehler in meinem System oder hat jemand etwas ähnliches beobachtet? HILFE :-)

Verfasst: 11.02.2008 01:59
von ABBKlaus
Hat wohl mit diesem thread zu tun : http://www.purebasic.fr/english/viewtopic.php?t=30840

Du könntest die Printer_Lib als includefile benutzen (Init() nicht vergessen)

MfG Klaus

Verfasst: 14.02.2008 23:58
von MK_2007
Hallo ABBKlaus,
vielen Dank für Deinen Tip und den Code.
Klappt hervorragend. Genau so, wie ich es mir vorgestellt hatte.