Drucken aus vorher festgelegter Papierkassette

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
MK_2007
Beiträge: 11
Registriert: 05.02.2008 17:43

Drucken aus vorher festgelegter Papierkassette

Beitrag 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.
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag 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
PureBasicPower TailBite Printer_Lib / PDFBarcode / PrintBarcode / ExcelWriter
PBFetischist
Beiträge: 55
Registriert: 26.10.2004 19:42

Beitrag 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 :-)
Benutzeravatar
ABBKlaus
Beiträge: 61
Registriert: 15.03.2006 22:09
Wohnort: Ratingen
Kontaktdaten:

Beitrag 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
PureBasicPower TailBite Printer_Lib / PDFBarcode / PrintBarcode / ExcelWriter
MK_2007
Beiträge: 11
Registriert: 05.02.2008 17:43

Beitrag von MK_2007 »

Hallo ABBKlaus,
vielen Dank für Deinen Tip und den Code.
Klappt hervorragend. Genau so, wie ich es mir vorgestellt hatte.
Antworten