AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Drucker per Programm auf Simplex oder Duplex Druck einstellen

Drucker per Programm auf Simplex oder Duplex Druck einstellen

Ein Thema von Andidreas · begonnen am 27. Jan 2016 · letzter Beitrag vom 27. Jan 2016
Antwort Antwort
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
zagota

Registriert seit: 3. Sep 2014
38 Beiträge
 
#2

AW: Drucker per Programm auf Simplex oder Duplex Druck einstellen

  Alt 27. Jan 2016, 09:27
Delphi-Quellcode:
              dmDuplex:=DMDUP_SIMPLEX; //Simplex
              dmFields := dmFields or DM_DUPLEX;
Müsste es nicht
dmFields := dmFields and not DM_DUPLEX heissen?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz