Drucken mit Wasserzeichen

Bei einem Wasserzeichen handelt es sich um Text- oder Grafikelemente, die im Hintergrund des eigentlichen Dokumentinhalts gedruckt werden.


Um mit CONZEPT 16 eine Druckaufbereitung mit Wasserzeichen zu realisieren, sind folgende Punkte zu berücksichtigen:

  • Neben dem Druckobjekt, welches den Dokumentinhalt ausgibt, wird ein weiteres Objekt für die Ausgabe des Wasserzeichens benötigt
  • Bei der Druckausgabe wird die Reihenfolge der Druck-Objekte umgekehrt. Das bedeutet, die zu einem Druckjob zuletzt hinzugefügten Objekte werden von den zuvor gedruckten Objekten überdeckt. Aus diesem Grund wird die Ausgabe des Wasserzeichens unmittelbar vor einem Seitenwechsel vorgenommen
  • Damit das Wasserzeichen "durchscheinen" kann, muss die Hintergrundfarbe der Objekte, die auf das Wasserzeichen gedruckt werden, auf den Wert _WinColTransparent gesetzt werden

Im nachfolgenden Beispiel wird eine Liste mit einem Hintergrundbild ausgegeben:

try
{
  ErrTryIgnore(_rLocked,_rNoRec);

  // Druckjob öffnen
  tJob # PrtJobOpen(_PrtDocDinA4,'',_PrtJobOpenWrite |_PrtJobOpenTemp)

  // Druckobjekte laden
  tAddresses # PrtFormOpen(_PrtTypePrintForm,'Adressen');
  tWatermark # PrtFormOpen(_PrtTypePrintForm,'Wasserzeichen');

  // Erste Seite ankündigen
  tPage # tJob->PrtJobWrite(_PrtJobPageStart);

  // Alle Adressen der Datei lesen
  for   tResult # RecRead(10,1,_RecFirst)
  loop  tResult # RecRead(10,1,_RecNext)
  while (tResult != _rNorec)
  {
    // Bereits verbrauchter Platz auf Seite
    tAddSize # tPage->ppBoundAdd;

    // Maximal zu Verfügung stehender Platz auf Seite
    tMaxSize # tPage->ppBoundMax;

    // Passt die PrintForm noch auf die Seite?
    if (tAddSize:y + tAddresses ->ppFormHeight > tMaxSize:y)
    {
      // Wasserzeichen hinzufügen
      tPage->PrtAdd(tWatermark,0,0,0);

      // Seitenwechsel durchführen
      tPage # tJob->PrtJobWrite(_PrtJobPageBreak);
    }
    // Drucken Adresse
    tPage->PrtAdd(tAddresses);
  }

  // Letzte Seite geschrieben / Wasserzeichen hinzufügen
  tPage->PrtAdd(tWatermark,0,0,0);
  tJob->PrtJobWrite(_PrtJobPageEnd);

  // Druckobjekte schließen
  tAddresses->PrtFormClose();
  tWatermark->PrtFormClose();

  // Druckjob schließen und Preview anzeigen
  tJob->PrtJobClose(_PrtJobPreview);
}

4 Antworten

  1. @Th.Eichele
    vielen Dank für den Hinweis. Das haben wir auch gesehen. In der Hilfe für die CONZEPT 16-Version 5.6.05 wird das korrigiert sein.

  2. @Th.Eichele
    Das PrtBarcode-Objekt unterstützt ebenfalls _WinColTransparent.
    Bei dem PrtDivider gibt es keinen nicht verwendeten Bereich. Ein weißes Rechteck erscheint demnach nicht.

  3. d.h. bei Objekten die transparenten Hintergrund nicht unterstützen, wie z.B. PrtDivider, PrtBarcode hat man weiße Rechtecke im Hintergrundbild ?

Schreibe einen Kommentar

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

Leave the field below empty!

This form type is not available for selected form
This form type is not available for selected form

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

GDPR Cookie Consent mit Real Cookie Banner