Printerabfrage[ERLEDIGT]
Moderator: Moderatoren
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Printerabfrage[ERLEDIGT]
Hallo zusammen
ist es möglich bei einem Drucker MFC-J6510DW die Einstellungen abzufragen.
Duplexdrucken, anzahl Seite pro Blatt, eigentlich alles was heute ein Multiprinter kann ??
Gruss Thomas
ist es möglich bei einem Drucker MFC-J6510DW die Einstellungen abzufragen.
Duplexdrucken, anzahl Seite pro Blatt, eigentlich alles was heute ein Multiprinter kann ??
Gruss Thomas
Zuletzt geändert von Muecke am Di, 09. Sep 2014 11:35, insgesamt 1-mal geändert.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Printerabfrage
schau doch mal was es alles unter XbpPrinter() so gibt ...
notfalls auch XbpPrintDialog()
notfalls auch XbpPrintDialog()
Gruß
Hubert
Hubert
Re: Printerabfrage
Hallo Thomas
vielleicht hilft Dir das weiter:
Das wird so bei Dir nicht laufen, zu viele weitere Parts von mir drin. Sollte aber nicht zu schwierig sein das für Dich umzuschreiben.
Die Liste sieht dann ungefähr so aus (gekürzt):
vielleicht hilft Dir das weiter:
Code: Alles auswählen
Function GsLaserPrnStatList
Local oPrinter := XbpPrinter():new()
Local oParent := AppDeskTop()
Local nCnt1 := 0
Local nCnt2 := 0
Local nLen := 0
Local cPrinter := ""
Local aPaperBins := {}
Local nAnz := 0
Local cLogFile := GsTempFileLocal() + ".txt"
Local cLog := ""
IF oPrinter:List() == NIL
oPrinter:Destroy()
GsLaserNoPrinters( "GsLaserPrnStatList()" )
Else
GsWartenEin()
nLen := Len( oPrinter:List() )
cLog += "Druckerliste" + dcCRLF
For nCnt1 := 1 To nLen
cPrinter := oPrinter:List()[nCnt1]
oPrinter:create( cPrinter )
cLog += dcCRLF
cLog += "Drucker: " + cPrinter + dcCRLF
aPaperBins := NIL
xtGsErrBlkBreak()
Begin Sequence
aPaperBins := oPrinter:paperBins()
End Sequence
xtGsErrBlkLast()
If aPaperBins == NIL
cLog += "keine Sch„chte oder Fehler beim Abfragen" + dcCRLF
Else
nAnz := Len( aPaperBins )
If nAnz == 0
cLog += "keine Sch„chte" + dcCRLF
Else
cLog += "Schachtliste" + dcCRLF
For nCnt2:=1 To nAnz
cLog += "Schacht-ID: " + Var2Char( aPaperBins[nCnt2,1] ) + " Name: " + aPaperBins[nCnt2,2] + dcCRLF
Next nCnt2
EndIf
EndIf
oPrinter:Destroy()
Next nCnt1
cLog += dcCRLF
cLog += dcCRLF
cLog += "<Ende der Liste>" + dcCRLF
GsWriteToFile( cLogFile , ConvToAnsiCP( cLog ) , .T. , .F. )
GsEditorNotepadStart( cLogFile , .T. )
GsWartenAus()
EndIf
Return( .T. )
Die Liste sieht dann ungefähr so aus (gekürzt):
- Druckerliste
Drucker: Microsoft XPS Document Writer
Schachtliste
Schacht-ID: 15 Name: Automatisch auswählen
Drucker: Brother PC-FAX v.2.2
keine Schächte
Drucker: Adobe PDF
Schachtliste
Schacht-ID: 15 Name: Automatisch auswählen
Schacht-ID: 257 Name: OnlyOne
Drucker: \\dc2\BrotherGDI
Schachtliste
Schacht-ID: 7 Name: Automatische Zufuhr
Schacht-ID: 1 Name: Zufuhr 1
Schacht-ID: 258 Name: MF-Zuführung
Schacht-ID: 4 Name: Manuell
<Ende der Liste>
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Printerabfrage
Besten Dank
habe in den xbpprinter wie auch im Dialog nichts gefunden.
Suche mal weiter.
Gruss Thomas
habe in den xbpprinter wie auch im Dialog nichts gefunden.
Suche mal weiter.
Gruss Thomas
Re: Printerabfrage
Hallo Thomas
Du musst halt in meinem Beispiel die benötigten Abfragen einbauen.
z.B. dort wo die Abfrage steht
kannst Du auch abfragen
usw.
Wie Hubert schon schrieb: schaue in der Doku bei XbpPrinter nach, da steht einiges...
viel Erfolg!
Du musst halt in meinem Beispiel die benötigten Abfragen einbauen.
z.B. dort wo die Abfrage steht
Code: Alles auswählen
aPaperBins: = oPrinter:paperBins()
Code: Alles auswählen
lDuplex := oPrinter:setDuplexMode()
nCopies := oPrinter:setNumCopies()
Wie Hubert schon schrieb: schaue in der Doku bei XbpPrinter nach, da steht einiges...
viel Erfolg!
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Printerabfrage
Thomas, falls du die gesuchten Parameter über xbpprinter nicht findest, kannst du entweder mit (aus der Hilfe):
eventuell dir helfen.
oder dann halt durch Aufruf des Druckdialoges zum manuellen Einstellen:devParams
Zusätzliche Parameter für spezielle Druckertreiber.
Beschreibung
Die Instanzvariable :devParams enthält erst nach dem Aufruf der Methode :create() eine Zeichenkette. Sie stellt zusätzliche Parameter für spezielle Druckertreiber bereit. Diese sind geräteabhängig und müssen bei dem Druckertreiber dokumentiert sein. So kann z.B. der Treiber für einen Fax-Drucker Informationen über die Telefonnummer o.ä. benötigen, um einen Druckjob als Fax zu versenden.
Windows unterstützt keine individuellen Geräteparameter für Druckerobjekte.
eventuell dir helfen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Printerabfrage
Schau dir mal das Posting von Jimmy an:
http://www.xbaseforum.de/viewtopic.php? ... 094#p90329
http://www.xbaseforum.de/viewtopic.php? ... 094#p90329
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Printerabfrage
Hier habe ich ein Beispiel welche Infos mit XbpPrinter() direkt ermittelt werden können.
Grundsätzlich kann man auch alles für den Druckjob selbst neu setzen, wenn man oP:setupDialog() aufruft.
PS: ob es sich um einen Netzwerkdrucker handelt, kann man aus dem Namen schließen:
:devName => \\XYZ\Canon ... series => Netzwerkdrucker - der aktuelle Namen entspricht aber nicht unbedingt der Freigabe !
NET VIEW \\XYZ zeigt alle Freigaben an
WICHTIG: die Methoden können NIL zurückgeben, also nicht direkt oP:forms()[x,1] verwenden !
Grundsätzlich kann man auch alles für den Druckjob selbst neu setzen, wenn man oP:setupDialog() aufruft.
PS: ob es sich um einen Netzwerkdrucker handelt, kann man aus dem Namen schließen:
:devName => \\XYZ\Canon ... series => Netzwerkdrucker - der aktuelle Namen entspricht aber nicht unbedingt der Freigabe !
NET VIEW \\XYZ zeigt alle Freigaben an
WICHTIG: die Methoden können NIL zurückgeben, also nicht direkt oP:forms()[x,1] verwenden !
- Dateianhänge
-
- PrinterInfos.zip
- (1.83 KiB) 421-mal heruntergeladen
Gruß
Hubert
Hubert
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: Printerabfrage
Hallo
Besten Dank für Euro Infos.
Hubert genau das hab ich gesucht
Besten Dank
Gruss Thomas =D>
Besten Dank für Euro Infos.
Hubert genau das hab ich gesucht
Besten Dank
Gruss Thomas =D>