Programmierung

Verwenden des Dialogs "Drucken" von Windows

Die Funktion WinOpen() bietet dem Entwickler neben dem Laden selbst definierter Dialoge, auch einen Zugriff auf die Windows-Standarddialoge (Common Dialog Control) wie Öffnen, Speichern, Drucken etc. Im folgenden Artikel gehe ich darauf ein, wie der Dialog Drucken in CONZEPT 16 verarbeitet werden kann.



Um den Anwender den Drucken-Dialog zur Verfügung stellen zu können, muss dieser über die Funktion WinOpen() mit der Option _WinComPrint geladen werden.
In diesem Dialog hat der Anwender die Möglichkeit, bestimmte Einstellungen für die anschließende Druckausgabe vorzunehmen. Zu den Einstellungen zählen zum Beispiel der Bereich der zu druckenden Seiten oder die Anzahl der Kopien.

Standarddialog „Drucken“

Die Einstellungen des Fensters lassen sich nicht nur ermitteln, sondern können bereits beim Laden des Dialogs mit Werten vorbelegt werden. Nach dem Schließen des Dialogfelds werden die Daten allerdings nicht an den Drucker gesendet. Damit die Druckausgabe die Daten des Dialogs berücksichtigen kann, müssen die Werte auch bei dem CONZEPT 16-Druckjob-Objekt PpvComPrint gesetzt werden.

Nachfolgendes Beispiel zeigt die prozedurale Verarbeitung des Drucken-Dialogs:

// Öffnen Standard-Drucker
tDevice # PrtDeviceOpen('',_PrtDeviceSystem);

// Laden Dialog "Drucken"
tComPrt # WinOpen(_WinComPrint,0,tDevice);

tComPrt->wpMinInt    # tMinInt;
tComPrt->wpMaxInt    # tMaxInt;

// Drucken der Seiten 2 bis 3
tComPrt->wpPageFrom  # 2;
tComPrt->wpPageTo    # 3;

// Setzen Radio-Button "Seiten von..bis"
tComPrt->wpFlags     # _WinComPrintPageRange;

if (tComPrt->WinDialogRun() = _WinIdOk)
{
  // Druckjob öffnen
  tJob # PrtJobOpen('',_Sys->spPathMyDocuments
                    + '\MyPrintJob.job',_PrtJobOpenRead);
  if (tJob > 0)
  {
    // Objekt "PpvComPrint" ermitteln
    tJobPrt # tJob->WinSearch('PpvComPrint');
    if (tJobPrt > 0)
    {
      // Einstellungen des Drucken-Dialogs übernehmen
      tJobPrt->wpMinInt   # tComPrt->wpMinInt;
      tJobPrt->wpMaxInt   # tComPrt->wpMaxInt;
      tJobPrt->wpPageFrom # tComPrt->wppageFrom;
      tJobPrt->wppageTo   # tComPrt->wppageTo;
      tJobPrt->wpFlags    # tComPrt->wpFlags;
    }
  }
  // Druckausgabe starten
  tJob->PrtJobClose(_PrtJobPrint,tDevice);
}
2 Kommentare

2 Kommentare “Verwenden des Dialogs "Drucken" von Windows”

Kommentar abgeben