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
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.