CtxDocEdit – Drucken auf ausgewählten Drucker

Wie bereits im Artikel Drucken mit dem CtxDocEdit angekündigt, wird es in der Version 5.6.06 eine Möglichkeit geben den Inhalt eines CtxDocEdit-Objektes auf einem beliebigen Drucker auszugeben.

Da, wie in dem Artikel beschrieben, an die COM-Eigenschaft PrintDevice ein Geräte-Kontext übergeben werden muss, haben wir den Befehl WinDocPrint() implementiert. Der Befehl hat folgenden Funktionskopf:

WinDocPrint(
  Object        : handle;    // Deskriptor des CtxDocEdit-Objektes
  opt Pages     : alpha;     // Seitenauswahl
  opt PrtDevice : handle;    // Deskriptor eines PrintDevices
  opt Copies    : int;       // Anzahl der Exemplare
) : int;                     // Fehlercode

Pages – Seitenauswahl mit range(), odd() oder even()

In Pages kann eine Seitenauswahl angegeben werden. Mit range() wird ein Bereich oder eine Aufzählung von Seiten gedruckt. Wird Pages nicht angegeben oder range() ohne weitere Parameter angegeben, werden alle Seiten des Dokumentes gedruckt.

Beispiele:
'range()'         // Alle Seiten drucken
'range(1-10)'     // Seiten 1 bis 10 drucken
'range(1,3,5-9)'  // Seiten 1, 3 und 5 bis 9 drucken

Mit odd() können alle ungeraden, oder ein Bereich von ungeraden Seiten gedruckt werden.

Beispiele:
'odd()'      // Alle ungeraden Seiten drucken
'odd(1,10)'  // Alle ungeraden Seiten im Bereich 1 bis 10 drucken

Mit even() können alle geraden Seiten oder ein Bereich von geraden Seiten gedruckt werden.

Beispiele:
'even()'      // Alle geraden Seiten drucken
'even(1,10)'  // Alle geraden Seiten im Bereich 1 bis 10 drucken

PrtDevice – CONZEPT 16 PrintDevice-Objekt

Im Parameter PrtDevice kann der Deskriptor eines mit PrtDeviceOpen() geöffneten PrintDevice-Objektes übergeben werden, um den Zieldrucker zu definieren. Wird kein PrintDevice angegeben, erfolgt die Ausgabe auf dem Standarddrucker.

Copies – Anzahl der Exemplare

Mit diesem Parameter kann die Anzahl der zu druckenden Exemplare definiert werden. Ist dieser Parameter nicht angegeben, wird die Eigenschaft ppCopies des PrintDevice-Objektes ausgelesen. Ist hingegen kein PrintDevice-Objekt definiert, wird ein Exemplar gedruckt. Die Anzahl der Exemplare kann daher auch über den Drucker-Auswahldialog (WinOpen(_WinComPrint)) gesetzt werden.

Beim Druck von mehreren Exemplaren kann über die Eigenschaft ppCollate des PrintDevice-Objektes definiert werden, ob die Exemplare sortiert werden (alle Seiten eines Exemplars am Stück), oder nicht (alle Exemplare einer Seite am Stück).

Der Aufruf des Befehls kann beispielsweise wie folgt aussehen:

$ctxDocEdit->WinDocPrint('range(1-5,7,9)', tPrtDevice, 2);

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

3 Antworten

  1. @Daniel:
    Nein nicht nötig, es geht eher darum Aufzählung und Bereich zu mischen. Aber das lässt sich ja leicht selbst implementieren.

  2. @tsauter:
    Die Formatierung ist an die bestehenden Eigenschaften ppSelectPrt, und ppSelectPvw des Druckprozessors angelehnt. Mit odd() und even() kann nur ein Bereich angegeben werden. Der Minimalwert dieses Bereichs wird mit Komma vom Maximalwert getrennt.

    Bei range() können mehrere Werte und auch Bereiche angegeben werden. Daher ist es bei range wichtig zu unterscheiden, ob nur eine einzelne Seite, oder ein Bereich von Seiten angesprochen werden soll.

    Wenn es für Sie relevant ist, können wir bei odd() und even() zusätzlich die Form odd(1-10) implementieren.

  3. Sehr gut! Noch eine Frage: in range() wird eine Bereich mit 1-10 angegeben, in odd() und even() mit 1,10? Oder ist das da auch eine Aufzählung?

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner