CIB format technischer Leitfaden (DE)

4. Ausgabemodule

4.4. CIB format/print

CIB format/print wird als Rtf-Druckinterpreter eingesetzt. Er wurde dazu entwickelt, den kompletten Textinhalt der RTF-Datei passend zu einem vorgegebenen Ducker zu rendern und auszudrucken. So nahe wie möglich soll (z.B. MS-Word unter WIN32) das Ergebnis vom Aussehen her dem vergleichbarer Textverarbeitungssysteme kommen. Unterstützt wird die RTF-Spezifikation der Version 1.9 (MS Office 2007). Es wird die Grafik-API des jeweiligen Betriebssystems genutzt. Alle Druckertreiber und Fontinstallationen der jeweiligen Plattform werden unterstützt.

Spezielle Optionen für die Druckausgabe

Optionsname

Optionswert

Datentyp

BinMap

Definiert eine Drucker-spezifische Schachtzuordnungs-Tabelle. In ihr können im RTF festgelegte Druckerschacht-Nummern umgestellt werden.
Dies wird benötigt, wenn sich der Drucker oder Treiber ändert (und damit u.U. auch die Schachtnummern), z.B. wird im RTF „250“ benutzt, der neue Druckertreiber verwendet aber für diesen Schacht „255“.

Syntax:
{BINMAP:Druckername;{schachtalt;schachtneu};{schachtalt;schachtneu}...}

Char*

DefaultPrinter

nur GET Property, DefaultDrucker

Char*

DeviceCapability.DriverVersion

Version des Gerätetreibers

Char*

DeviceCapability.DuplexAvailable

The printer is able to print duplex or double sided. 0/1

Char*

DeviceCapability.DuplexDefault

Optional default setting for duplex printing. One of 1=DMDUP_SIMPLEX, 2=DMDUP_HORIZONTAL, 3=DMDUP_VERTICAL

Char*

DeviceCapability.PrinterOffsetX

Die Property gibt den unbedruckbaren linken Rand eines Druckers in der Einheit seiner aktuellen Auflösung an.

Char*

DeviceCapability.PrinterOffsetY

Die Property gibt den unbedruckbaren oberen Rand eines Druckers in der Einheit seiner aktuellen Auflösung an.

Char*

DeviceCapability.Type42Available

The printer supports Type42 fonts. 0/1

Char*

DeviceCapability.HorzSize

Width, in millimeters, of the physical screen

Char*

DeviceCapability.VertSize

Height, in millimeters, of the physical screen

Char*

DeviceCapability.PhysicalWidth

For printing devices: the width of the physical page, in device units.

Char*

DeviceCapability.PhysicalHeight

For printing devices: the height of the physical page, in device units

Char*

DeviceCapability.HorzRes

Width, in pixels, of the screen

Char*

DeviceCapability.VertRes

Height, in raster lines, of the screen

Char*

DeviceCapability.LogPixelsX

Number of pixels per logical inch along the screen width. In a system with multiple display monitors, this value is the same for all monitors.

Char*

DeviceCapability.LogPixelsY

Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors.

Char*

DeviceCapability.PhysicalOffsetX

For printing devices: the distance from the left edge of the physical page to the left edge of the printable area, in device units.

Char*

DeviceCapability.PhysicalOffsetY

For printing devices: the distance from the top edge of the physical page to the top edge of the printable area, in device units.

Char*

DeviceCapability.NumColors

Number of entries in the device's color table, if the device has a color depth of no more than 8 bits per pixel. For devices with greater color depths, -1 is returned.

Char*

DeviceData

Unabhängige Treibereinstellungen

 

DeviceDataValue

Get, nur unter Windows

Zum Auslesen von Treiberinformationen. An die Property muss der Membername der DEVMODE-Struktur (siehe wingdi.h) angefügt werden.

Beispiel:
"DeviceDataValueOrientation" liefert den Wert aus „Orientation“ als String. Das ist für Querformat „DMORIENT_LANDSCAPE“, also  "2".

Char*

DuplexPrint

VERALTET:
Zweiseitiger Druck (An, Aus)

Long (boolean)

DuplexPrint2

Einschalten des ein-/zweiseitigen Drucks

Mögliche Werte:
"DuplexPrintShort":
Es wird beidseitig bedruckt, wobei das Blatt wie bei einem Kalender an der kurzen Seite gedreht wird.

"DuplexPrintLong":
Es wird beidseitig bedruckt wobei das Blatt wie bei einem Buch an der langen Seite gedreht wird.

"SimplexPrint":
Es wird einseitig bedruckt.

"DuplexDefault" (default):
 (Verwendung der Drucker-Einstellung)

Char*

FaxAvailable

Faxbehandlung, Fax verfügbar

Char*

FaxOnly

 

Faxbehandlung

Long (boolean)

FormFeed

 

Endlos drucken

Long (boolean)

PaperBin

Gezielte Ansteuerung eines bestimmten Drucker-Schachtes.

Möglich sind:
- Druckerspezifische Schachtnummern,
            z.B. 258
            (ab CIB format 5.3.238)
- Druckerspezifische Schachtbezeichner
            z.B. Fach 1
- System-Standardschächte:
            "BinOnlyOne"
            "BinLower"
            "BinManual"
            "BinMiddle"
            "BinUpper"
            "BinLargeCapacity"
            "BinTray5"
            "BinEnvelope"
            "BinDefault"

Achtung:
Die System-Standardschächte werden nicht von jedem Druckertreiber unterstützt, was zu einem Ausdruck auf dem Standardschacht des jeweiligen Druckers führt.

Es ist möglich, für die erste Seite und den Rest des Dokuments unterschiedliche Schächte anzusteuern. Die beiden Schächte werden dann durch Semikolon getrennt.

 Beispiel:
PaperBin=“258;260“

Char*

PaperBinAvailable

Rückgabe der verfügbaren Druckerschächte eines speziellen Druckers

Char*

ReceiverCopyMap

(ab CIB format Version 5.3.237)

Set

In einer Tabelle können den in den Dokumenten gesetzten Textmarken (Ausfertigungen, AUSFn) sprechende Namen zugeordnet werden.
Die hier vergebenen Namen können in der Property PageSelection verwendet werden.

Die Zuordnung der Papiertypen zu Drucker­schächten erfolgt über Property PaperTypeMap. Die gesetzten Papiertypen können pro Ausfertigung (gemäß PageSelection) angewendet werden, d.h. das Setzen der Property PageSelection ist zwingend erforderlich.

Syntax:

<r-copy> | <r-copy> ";" <ReceiverCopyMap>

<r-copy> ::= "{" <NameNeu> ";" <Textmarke> ";"
<PapiertypSeite1> ";" <PapiertypRest> "}"

<NameNeu> ::= <leer> | <Text>

<Textmarke> ::= <Text>

<PapiertypSeite1> ::= <leer> | <Text>

<PapiertypRest> ::= <leer> | <Text>

Beispiel:
ReceiverCopyMap={kunde;AUSF1;briefkopf;brief};{bank;AUSF2;blanko;blanko}

Char*

PaperTypeMap

(ab CIB format Version 5.3.237)

Set

In einer Tabelle können den verwendeten Papiertypen die Druckerschächte zugeordnet werden, in denen dieses Papier liegt.
Zu Schachtnamen bzw. Schachtnummern siehe Property PaperBin.
Das Belegen dieser Tabelle ist Voraussetzung für Papiertyp bezogenes Drucken. Ansonsten erfolgt der Ausdruck auf den Default-Schacht des Druckers (oder auf Schächte, die durch andere Properties festgelegt wurden.

Die Papiertypen müssen in der Property ReceiverCopyMap bzw. PaperTypes definiert worden sein.

Syntax:
<PaperTypeMap> ::= <Eintrag> | <Eintrag> ";" <PaperTypeMap>

<Eintrag> ::= <Papiertyp> "," <Schacht>

<Papiertyp> ::= <Text>

<Schacht> ::= <Text> | <Nummer>

Beispiel:
PaperTypeMap={briefkopf,Schacht1;
brief,Schacht2;blanko,260}.

Char*

PaperTypes

(ab CIB format Version 5.3.237)

Set

Es können Default-Papiertypen für den Ausdruck festgelegt werden, falls keine ReceiverCopyMap vorhanden ist. Es sind maximal zwei Papiertypen möglich (für Gesamtdokument oder für 1. Seite und den Rest).
Voraussetzung für diese Property ist eine Zuordnung der Papiertypen zu Drucker­schächten über PaperTypeMap.
Die gesetzten Papiertypen werden entweder pro Ausfertigung (gemäß PageSelection) oder auf das ganze Dokument angewendet.

Syntax:
<PaperTypes> ::= <Papiertyp> | <Papiertyp> ";" <Papiertyp>

<Papiertyp> ::= <Text>

Beispiel:
PaperTypes=briefkopf;brief

Char*

PrintBracketMode

(ab CIB format Version 5.3.237)

Set

Es können mehrere Druck-Dokumente in einem Druckauftrag geklammert werden. Dadurch wird vermieden, dass sich Druckseiten von unterschiedlichen Personen mischen und danach per Hand auseinander sortiert werden müssen. Bei diesen Dokumenten kann es sich um RTFs oder PDFs (auch gemischt) handeln.

Mögliche Werte:

Open PrintBracket ist leer:
Öffnen einer neuen Druckklammer mit erstellen eines Handles, das in PrintBracket gespeichert wird. Das Dokument wird der Druckklammer hinzugefügt.
PrintBracket ist belegt:
Das Dokument wird der Druckklammer hinzugefügt.
In beiden Fällen ist die Übergabe eines Dokuments (InputFilename oder InputMemoryAddress) zwingend erforderlich, ansonsten Fehler­mel­dung .

Close PrintBracket ist leer:
Das einzelne Dokument wird gedruckt. Übergabe eines Dokuments (InputFilename oder InputMemoryAddress) ist damit zwingend erforderlich, ansonsten Fehler­mel­dung.
PrintBracket ist belegt:
Das Dokument (falls vorhanden) wird der Druckklammer hinzugefügt. Die Druckklammer wird geschlossen, das Handle freigegeben. Der Spooler übernimmt den Druckauftrag.

Cancel PrintBracket ist leer:
Ausgabe einer Fehlermeldung, da keine Druckklammer existiert, die abgebrochen werden kann.
PrintBracket ist belegt:
Die Druckklammer wird verworfen, d.h. das Handle freigegeben ohne dass ein Druckauftrag erfolgt.

Hinweis: Nur unter Windows verfügbar.

Char*

PrintBracket

(ab CIB format Version 5.3.237)

Set/Get

Bei Starten einer neuen Druckklammer (PrintBracketMode=Open) erstellt der CIB format (oder die CIB pdf toolbox) ein neues Druckklammer-Handle. Dieses Handle wird in der Property PrintBracket hinterlegt.

Dieses Handle weist auf die Druckauftrag-Instanz, wo Verwaltungsinformationen (printed pages, printed documents, etc.) gespeichert sind und zusätzlich das Spoolerhandle.

Hinweis: Nur unter Windows verfügbar.

Long

PrinterChanged

 

nur GET Property, anderer Drucker ausgewählt

Long (boolean)

PrinterInfo

Druckerinfo

Die Property „PrinterInfo“ gibt einen Text im Schema „[Druckername] an [Port]“ zurück. Die Viewer verwenden diese Funktionalität.

veraltet

Char*

JobInfo.Status

(ab CIB format Version 5.3.243)

Get-Property

Der Defaultwert ist leer.

Sie gibt den Zustand des aktiven (= gerade druckenden) Druckauftrags zurück.

Sie enthält eine Dezimalzahl, die vom Aufrufer als Bitfeld interpretiert werden muss. Je nach gesetzten Bits können mehrere Zustände enthalten sein.

Mögliche Werte:

0x00000200   //Printer driver cannot print the job.

0x00001000   //Job has been delivered to the printer.

0x00000100   //Job has been deleted.

0x00000004   //Job is being deleted.

0x00000002   //An error is associated with the job.

0x00000020   //Printer is offline.

0x00000040   //Printer is out of paper.

0x00000001   //Job is paused.

0x00000080   //Job has printed.

0x00000010   //Job is printing.

0x00000800   //Job has been restarted.

0x00000008   //Job is spooling.

0x00000400   //Printer has an error that requires the user to do something.

Char*

PrinterInfo.Status

(ab CIB format Version 5.3.243)

Get-Property

Der Defaultwert ist leer.

Sie gibt den Zustand (oder Zustände) des lokalen Druckerspoolers zurück (nicht des physikalischen Druckers). Dieser ist nur begrenzt mit dem Zustand des physischen Druckers vergleichbar.

Wird „0“ zurückgegeben, so ist der Drucker als bereit einzustufen. Andernfalls enthält die Property eine Dezimalzahl, die vom Aufrufer als Bitfeld interpretiert werden muss. Je nach gesetzten Bits können mehrere Zustände enthalten sein.

Mögliche Werte:

0x00000200   //The printer is busy.

0x00400000   //The printer door is open.

0x00000002   //The printer is in an error state.

0x00008000   //The printer is initializing.

0x00000100   //The printer is in an active input or output state.

0x00000020   //The printer is in a manual feed state.

0x00001000   //The printer is not available for printing.

0x00040000   //The printer is out of toner.

0x00000080   //The printer is offline.

0x00000800   //The printer's output bin is full.

0x00200000   //The printer has run out of memory.

0x00080000   //The printer cannot print the current page.

0x00000008   //Paper is stuck in the printer.

0x00000010   //The printer is out of paper.

0x00000040   //The printer has an unspecified paper problem.

0x00000001   //The printer is paused.

0x00000004   //The printer is being deleted as a result of a client's call to RpcDeletePrinter. No new jobs can be submitted on existing printer objects for that printer.

0x01000000   //The printer is in power-save mode.<186>

0x00000400   //The printer is printing.

0x00004000   //The printer is processing a print job.

0x02000000   //The printer is offline.<187>

0x00800000   //The printer status is unknown.<188>

0x00020000   //The printer is low on toner.

0x00100000   //The printer has an error that requires the user to do something.

0x00002000   //The printer is waiting.

0x00010000   //The printer is warming up.

Char*

PrinterInfo.Location

(ab CIB format Version 5.3.243)

Get-Property

Der Defaultwert ist leer.

Enthält einen beliebigen String, der vom Benutzer als „Ort“ in den Druckereigenschaften eingestellt wurde.

Char*

PrinterInfo.Comment

(ab CIB format Version 5.3.243)

Get-Property

Der Defaultwert ist leer.

Enthält einen beliebigen String, der vom Benutzer als „Kommentar“ in den Druckereigenschaften eingestellt wurde.

Char*

PrinterInfo.PortName

(ab CIB format Version 5.7.x)

Get-Property

Der Defaultwert ist leer.

Enthält einen beliebigen String, der bei der Druckerinstallation im System eingerichtet wurde („Druckereigenschaften -> Anschlüsse“).

Char*

PrinterInfo.WaitingJobs

(ab CIB format Version 5.8.x)

Get-Property

Der Defaultwert ist „0“.

Enthält einen String, der die Anzahl der wartenden Druckaufträge bei diesem Drucker wiedergibt.
Beispiel: „7“.

Char*

PrintSelectionDisable

veraltet: Keine Auswahlmöglichkeit im Druckdialog

Long (boolean)

PrintToFile

 

FALSE: der Ausdruck geht auf den gewünschten Drucker

TRUE: der Druck wird in eine Datei umgeleitet.

Diese Datei wird entweder im Benutzerdialog ermittelt oder
kann über die Eigenschaft OutputFilename bereits vorher
 gesetzt werden.

Long (boolean)

PrintDialogDisableToFile

 

TRUE: Im Druckdialog wird die Checkbox "Ausgabe In Datei umleiten" nicht angezeigt.

FALSE: Die Checkbox wird angezeigt (Default).

Long (boolean)

PrintDialogDisableSelection

 

TRUE: Die Optionen zum Auswählen einzelner Seiten im Druckdialog sind ausgegraut und können nicht verwendet werden.

FALSE: Die Optionen zum Auswählen einzelner Seiten sind verfügbar (Default)

Long (boolean)

PrintDlgHwnd

nur GET Property, DruckdialogHwnd

Long

PrinterPortName

Auf diesem Port wird gedruckt (Nur Get). Property not available.

Char*

PrintSelectionDisable

 

FALSE:
Seitenselektion wird beim Druck in der Eingabemaske angeboten(Default)

TRUE:
Es gibt keine Seitenselektion in der Druckeingabemaske nicht angeboten. Wenn gedruckt wird, dann kann nur das komplette Dokument gedruckt werden.

Long (boolean)

ShowDriverDialog

OS/2 Treiberdialog wenn Papierformate nicht passen

Long (boolean)

SpoolJobName

 

Bezeichnung des Spoolauftrages

Char*


Hinweis:

Für C++-Anwender sind die Optionsnamen in separaten Headerdateien als defines hinterlegt.