Programmierung

Image Embedding in Druckjobs

Wie Sie wiederverwendbare Druckjobs erstellen können, haben wir bereits im Artikel Wiederverwendung von Druckjobs vorgestellt. In diesem Beitrag lernen Sie ein weiteres nützliches Feature kennen.


Für die Druckaufbereitung von textuellen Informationen bietet CONZEPT 16 das PrtText und das PrtRtf-Objekt. Diese dienen dazu Texte und RTF-Inhalte in den Druckjob zu integrieren.
Für die Druckaufbereitung von Grafiken stellt CONZEPT 16 die Objekte PrtPicture und PrtMetaPicture bereit. Das erste Objekt ist in der Lage Rastergrafiken in unterschiedlichen Formaten anzuzeigen. Gängige Formate sind beispielsweise TIFF-, JPEG- und PNG.
Mit dem PrtMetaPicture integrieren Sie Vektor-Grafiken. Diese können ohne Qualitätsverlust skaliert werden. CONZEPT 16 unterstützt das EMF- sowie das ältere WMF-Format.
Wenn Sie einen Druckjob mit dem Befehl PrtJobOpen() erstellen, werden Texte und RTF-Inhalte eingebettet. Die generierte Job-Datei ist dadurch unabhängig von der Quelle des ursprünglichen Textes. Die Quelle wird für die Anzeige bzw. das Drucken der Druckjob-Datei nicht mehr benötigt.
Bei Bildern ist dies anders. Hier speichert CONZEPT 16 lediglich eine Referenz auf die Quelle. Fehlt diese, dann fehlt das Bild bei der Anzeige bzw. beim Druck.
Ab der Version 5.5.01 können auch Grafiken eingebettet werden. Der folgende Code zeigt wie:

@A+
@C+

main

  local
  {
    tJob   : handle;
  }

{
  tJob # PrtJobOpen('PrtPictureDoc','c:\test.job',
                    _PrtJobOpenWrite | _PrtJobOpenEmbedImages);
   ...
}

Entscheidend ist die Option _PrtJobOpenEmbedImages. Diese kann nur in Verbindung mit _PrtJobOpenWrite angegeben werden und führt dazu, dass auch Grafiken im Druckjob gespeichert werden und nicht bloß die Referenz auf die Quelle.

Die Druckjob-Datei wird natürlich größer, wenn die Option _PrtJobOpenEmbedImages angegeben ist. Mehrfach vorkommende Grafiken aus derselben Quelle werden jedoch nur ein einziges Mal gespeichert.
PDF-Dateien, die über das PrtPdf-Objekt angezeigt werden, sind ebenfalls von der Option betroffen.

3 Kommentare

3 Kommentare “Image Embedding in Druckjobs”

  1. danke für die Infos. Kann ich einen solchen Druckjob auch direkt als binäres Objekt in der Datenbank speichern (zum Archivieren) oder geht das nur über den Umweg, die externe Datei zu importieren.

Kommentar abgeben