Druck-Objekte (Teil II)

In dem Artikel Druck Objekte Teil I bin ich auf das PrintDocRecord-Objekt eingegangen. Ein Objekt, welches sich für die schnelle Erstellung von Drucklisten und Reports eignet.

Der heutige Artikel befasst sich mit dem PrintDoc-Objekt. Das PrintDoc wurde speziell für das Erstellen von Druckvorlagen, wie zum Beispiel Formulare, Briefvorlagen, Etiketten etc., konzipiert.


Aufbau

Der Aufbau des PrintDoc-Objekts erfolgt hierarchisch. Die Basis bildet das PrintDoc-Objekt selbst. Über dieses Objekt wird neben verschiedenen Farb- und Formatierungseinstellungen das Papierformat der Druckvorlage bestimmt. Über die Eigenschaft ppPageFormat stellt CONZEPT 16 bereits eine Reihe von vordefinierten Papierformaten nach der Deutsche Industrie Norm sowie US-Amerikanische Formate zur Verfügung. Benutzerdefinierte Formate können über die Eigenschaften ppPageHeight und ppPageWidth erstellt werden.

PrtDoc-Objekt

Das Basis-Objekt kann keine Objekte aufnehmen, die den Seiteninhalt bestimmen. Dazu ist dem PrintDoc-Objekt ein sogenanntes Seiten- bzw. PrtPage-Objekt hinzuzufügen. Neben den Objekten aus der Objekt-Palette “Druck” können dem PrtPage-Objekt zwei spezielle Objekte für das Erzeugen eines Kopf- und Fußbereichs hinzugefügt werden.

Seiten-Objekt mit Kopf- und Fußbereich

Das PrintDoc-Objekt kann bis zu zehn unterschiedliche Seiten-Objekte aufnehmen. Während der Druckaufbereitung können die einzelnen Seiten-Objekte angesprochen werden. Auf diese Weise lässt sich ein Seitenobjekt mit unterschiedlichen Inhalten beliebig oft ausgeben.
Ein typischer Anwendungsfall ist eine Briefvorlage. Für die Vorlage werden zwei Seitenobjekte definiert. Ein Objekt beinhaltet die erste Seite mit Briefkopf und Anschrift, das zweite Objekt gibt die Folgeseite(n) aus.

Briefvorlage mit zwei Seiten-Objekten
// Druckjob öffnen
tJob # PrtJobOpen('Briefvorlage','',_PrtJobOpenWrite |
                                    _PrtJobOpenTemp);
// PrtDoc-Objekt ermitteln
tDoc  # tJob->PrtInfo(_PrtDoc);
// Erste Seite drucken
tJob->PrtJobWrite(tDoc->PrtSearch('Seite1'));
// Seite 2 ermitteln
tPage # tDoc->PrtSearch('Seite2')
// Seite 2 drucken, solange Text vorhanden
while (CheckText())
{
  // Seite drucken
  tJob->PrtJobWrite(tPage);
}
//Druckjob an den Drucker senden
tJob->PrtJobClose(_PrtJobPrint);

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

4 Antworten

  1. @Th.Eichele

    Ja, dies ist möglich. Mit Hilfe des Befehls PrtInfo(). Wird dort der Parameter _PrtInfoPaperID angegeben, kann die intere ID des Papierformats ermittelt werden. Dabei gibt tCnt den Index des Papierformats innerhalb des Druckers an.

    Das ausgewählte Papierformat kann über die Eigenschaft ppPageFormat des PrtDoc-Objekts ermittelt werden.

    Beispiel:

    tSelectedPaper # aPrtDoc->ppPageFormat;
    tPaperCnt # aPrtDevice->PrtInfo(_PrtInfoPaperCount);
    for tIndexCnt # 1;
    loop inc(tIndexCnt);
    while (tIndexCnt<= tPaperCnt )
    {
    if (aPrtDevice->PrtInfo(_PrtInfoPaperID, tIndexCnt) = tSelectedPaper)
    return(true);
    }

  2. Vorschlag: Es sollte in den komplexeren Druckobjekten (Druckdokumente, Druckformulare usw.) die Möglichkeit geben einfache graphische Tabellen einzufügen (ähnlich wie in Word). Viele Kunden wollen Druckvorlagen realisiert haben, die zum einen zu komplex für die DocRecord-Möglichkeit sind, zum andern aber etliche Tabellen enthalten, die man dann unglaublich mühsam Linie für Linie zusammenstellen muss um sie exakt dem Kundenwunsch gemäss darstellen zu können.

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