Einzelnen Beitrag anzeigen

Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Drucker per Programm auf Simplex oder Duplex Druck einstellen

  Alt 27. Jan 2016, 08:36
Hallo zusammen,

ich versuche gerade bei unserem Drucker die Druckmethode per Programm auf Simplex (einseitiger Druck) oder Duplex (Druck auf Vorder & Rückseite) einzustellen...

Hierfür habe ich mir über Funktionen die ich im Internet gefunden habe den folgenden Source zusammengestellt:

Delphi-Quellcode:

    Printer.PrinterIndex := Printer.Printers.IndexOf(cmbbox_printers.Text);
    Printer.GetPrinter(arDevice, arDriver, arPort, hDevMode);
    blDuplexSupported := WinSpool.DeviceCapabilities(arDevice, arPort, DC_DUPLEX, nil, nil) <> 0;

    If (blDuplexSupported) Then
    Begin
      ShowMessage('Duplex Printer');

      If hDevMode <> 0 Then
      Begin
        // lock it to get pointer to DEVMODE record
        pDevMode := GlobalLock(hDevMode);

        If pDevMode <> Nil Then
        Begin
          Try
            With pDevmode^ Do
            Begin
              //dmDuplex := DMDUP_VERTICAL; // Duplex
              //dmDuplex := DMDUP_HORIZONTAL; // Duplex
              dmDuplex:=DMDUP_SIMPLEX; //Simplex
              dmFields := dmFields or DM_DUPLEX;
            End;
          Finally
            // unlock devmode handle.
            GlobalUnlock(hDevMode);
          End;
        End;
      End;

    End Else
    Begin
      ShowMessage('No Duplex Printer');
    End;
Der Drucker mit dem ich Teste ist Standardmäßig im Druckertreiber auf Duplex eingestellt.

Wenn ich mir die Druckereinstellungen in die pDevMode Variable einlese wird mir im Feld dmDuplex eine zwei angezeigt (heißt vermutlich Duplex Druck). Nachdem ich dem Feld dmDuplex den Wert DMDUP_SIMPLEX zugewiesen habe steht im dmDuplex Feld eine eins (Einseitiger Druck ???).

Das Druckergebnis beeinflusst die Routine aber nicht, d.h. egal was ich in meiner Routine einstelle, der Drucker Druckt immer Duplex & die Einstellung im Druckertreiber stellt sich auch nicht um.

Was evtl. noch wichtig ist, der Druck erfolgt über List & Label. List & Label bietet im Layout auch eine Option auf Simplex umzustellen, diese ist aber genauso "nutzlos".

Mach ich etwas falsch oder gibt es generell nur die Möglichkeit die Druckmethode im Treiber Fix auf Simplex oder Duplex einzustellen?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat