Printerabfrage[ERLEDIGT]

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

Moderator: Moderatoren

Printerabfrage[ERLEDIGT]

Beitragvon Muecke » Fr, 05. Sep 2014 19:41

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
Zuletzt geändert von Muecke am Di, 09. Sep 2014 11:35, insgesamt 1-mal geändert.
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
 
Beiträge: 518
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH

Re: Printerabfrage

Beitragvon brandelh » Fr, 05. Sep 2014 20:19

schau doch mal was es alles unter XbpPrinter() so gibt ...
notfalls auch XbpPrintDialog()
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13369
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Printerabfrage

Beitragvon Roland Gentner » Fr, 05. Sep 2014 21:16

Hallo Thomas

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


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):

    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>
Gruß
Roland
Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
 
Beiträge: 660
Registriert: Fr, 24. Nov 2006 9:30
Wohnort: Neresheim

Re: Printerabfrage

Beitragvon Muecke » Fr, 05. Sep 2014 21:29

Besten Dank

habe in den xbpprinter wie auch im Dialog nichts gefunden.

Suche mal weiter.

Gruss Thomas
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
 
Beiträge: 518
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH

Re: Printerabfrage

Beitragvon Roland Gentner » Fr, 05. Sep 2014 23:24

Hallo Thomas

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()

kannst Du auch abfragen
Code: Alles auswählen
lDuplex := oPrinter:setDuplexMode()
nCopies := oPrinter:setNumCopies()

usw.

Wie Hubert schon schrieb: schaue in der Doku bei XbpPrinter nach, da steht einiges...
viel Erfolg!
Gruß
Roland
Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
 
Beiträge: 660
Registriert: Fr, 24. Nov 2006 9:30
Wohnort: Neresheim

Re: Printerabfrage

Beitragvon Herbert » Sa, 06. Sep 2014 11:03

Thomas, falls du die gesuchten Parameter über xbpprinter nicht findest, kannst du entweder mit (aus der Hilfe):
: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.


oder dann halt durch Aufruf des Druckdialoges zum manuellen Einstellen

eventuell dir helfen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1782
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Printerabfrage

Beitragvon Wolfgang Ciriack » Mo, 08. Sep 2014 8:24

Schau dir mal das Posting von Jimmy an:
http://www.xbaseforum.de/viewtopic.php?f=32&t=8094#p90329
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2232
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Printerabfrage

Beitragvon brandelh » Mo, 08. Sep 2014 10:45

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 !
Dateianhänge
PrinterInfos.zip
(1.83 KiB) 97-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13369
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Printerabfrage

Beitragvon Muecke » Di, 09. Sep 2014 11:34

Hallo

Besten Dank für Euro Infos.

Hubert genau das hab ich gesucht

Besten Dank

Gruss Thomas =D>
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
 
Beiträge: 518
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH


Zurück zu Drucken und Export

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast