CIB pdf toolbox technischer Leitfaden (DE)

Site: CIB eLearning
Course: CIB pdf toolbox
Book: CIB pdf toolbox technischer Leitfaden (DE)
Printed by: Guest user
Date: Saturday, 4 May 2024, 11:42 AM

Table of contents

1. Lieferumfang

Allgemein
CIB runshell
JAVA Kapsel mit JCoMod
CIB documentServer

Allgemein

Die CIB pdf toolbox, wird als Binärmodul in Form von DLLs oder shared Libraries (Linux/Unix) ausgeliefert Lizenzierung.

Komponente

Softwareumfang

CIB pdf toolbox

 

CibPdf32(64).dll

CibPdf32(64).lib

CibPdf32(64).h

CibDataCsv(64).dll

CibDataXml(64).dll

CIBxalan(64).dll

Xalan-C_1_5_0.dll

xerces-c_2_2_0.dll

cibjbig232(64).dll

libcibpdfux(64).so

libcibpdfux(64).sl

CIB pdf toolbox-DLL für Win, Schnittstelle zur Anwendung

Library zur CIB pdf toolbox

Include Datei zur CIB pdf toolbox

Zugriffs Dll für CSV Daten

Zugriffs Dll für XML Daten

Tool Dll für XML

Tool Dll XML

Tool Dll XML

Tool Dll für JBIG2-Grafiken

CIB pdf toolbox shared library für diverse Unix Systeme

CIB pdf toolbox shared library für HP Unix Systeme

Abhängige Libraries unter Linux/Unix

libgcc_s.so

libstdc++.so.6

Abhängige Libraries unter AIX

libgcc_s.a

libstdc++.a



Im Lieferumfang ist des Weiteren eine Hilfe und Anwendungsbeispiele enthalten.

Hinweise zu den Modulen:
Ab PDF 1.5 werden von Adobe interaktive Formulare basierend auf die Adobe XML Forms Architecture (XFA) unterstützt. Bei XFA ist die Information zu den Formularfeldern in einem XML-Datenstrom enthalten. Das bedeutet, dass bei Einsatz der CIB pdf toolbox zusätzliche Module erforderlich sind. Im Folgenden werden diese Module näher erläutert.

Cibcache.dll     optional, dient für den Cache von Abfragen mit CibDataXml.dll.

CibDataCsv.dll benötigt, wenn Eingabedaten des CIB pdf merge CSV-Format haben.

CibDataXml.dll benötigt, wenn Eingabedaten des CIB pdf merge XML-Format haben.

Cibxalan.dll      benötigt, wenn Eingabedaten des CIB pdf merge XFDF-Format haben oder das PDF XFA-Objekte enthält.

xalan-c_1_5_0.dll          benötigt, wenn CIBDataXml.dll oder Cibxalan.dll eingesetzt werden.

xerces-c_2_2_0.dll        benötigt, wenn CIBDataXml.dll oder Cibxalan.dll eingesetzt werden

Jbig2dec.dll                  benötigt, wenn das PDF Grafiken im Format JBIG2 enthält.


Die CIB pdf toolbox ist für folgende weitere Plattformen verfügbar:

  • Linux
  • SUN Solaris
  • IBM Aix
  • HP Ux
    • Linux für OS/390
    • zusätzliche Plattformen auf Anfrage
CIB runshell

Die CIB runshell (cibrsh.exe) ermöglicht eine direkte Ansteuerung der CIB pdf toolbox Komponente(DLL), so dass darüber PDF Dateien verarbeitet werden können.

Der Anrufe der cibrsh.exe sieht wie folgt aus:

cibrsh.exe –f<Zusatzargument> <PDFDatei> [<PDF Dateien>]

Hier ein Beispiel für eine CIB pdf join Aufruf:

cibrsh.exe –fj Datei1.pdf Datei2.pdf


JAVA Kapsel mit JCoMod

Zusätzlich existiert mit dem JCoMod Wrapper eine komplette JAVA/JNI Kapselung, die eine einfache Ansteuerung der CIB pdf toolbox aus JAVA ermöglicht.

Es gibt auch entsprechende JAVA Klassen für die Kapselung der CIB runshell, so daß eine Nutzung der CIB Komponente nicht direkt im Prozeßraum der JAVA VM sondern in einem eigenen Prozeß darunter stattfindet.


CIB documentServer

Für eine Nutzung der CIB pdf toolbox in einem J2EE Container.


2. Einführung

Die CIB pdf toolbox ist ein neuer Meilenstein im Dokumentenbaukasten der CIB office Module. Mit der CIB pdf toolbox bekommt der Anwender ein Werkzeug an die Hand, womit er PDF Dateien und Formulare nach seinen Wünschen anpassen, mit Daten versorgen, verketten, aufsplitten, mit Aufdrucken versorgen, interpretieren, direkt ausdrucken u.v.a.m kann.

Die CIB pdf toolbox eignet sich auch zum nachfolgenden Einsatz im Anschluß an eine CIB format/pdf Konvertierung um z.B. weitere originale PDF Dateien (Anlagen etc.) mit dem erzeugten Konvertierungsergebnis zu einer finalen PDF Ausgabedatei zu verarbeiten.

Die vorliegende Dokumentation gibt einen schnellen Überblick über die vielfältigen Nutzungsmöglichkeiten.


3. Die CIB pdf toolbox als „PDF Werkzeugkasten“

Allgemein
CIB pdf merge
CIB pdf join
CIB pdf overlay
CIB pdf linearized
CIB pdf print
CIB pdf split
CIB pdf interpreter
CIB pdf format

Allgemein

Die CIB pdf toolbox ist ein universeller Werkzeugkasten zur Be- und Verarbeitung von PDF Dateien. Die einzelnen Werkzeuge sind nach funktionalen Schwerpunkten untergliedert.

CIB pdf toolbox im Überblick

Dem Anwender steht der gesamte Funktionsumfang der CIB pdf toolbox zur Verfügung.

Bei allen Funktionen der CIB pdf toolbox werden die erweiterten PDF-Features wie Verschlüsselung und Weboptimierung unterstützt.


CIB pdf merge

Mit CIB pdf merge ist es möglich:

  • Daten aus externen XML, XFDF und CSV Datenquellen in ein PDF einzumischen. Dabei werden im PDF Dokument enthaltene Formularfelder über ihren eindeutigen Namen angesprochen und mit dem angegebenen Inhalt gefüllt. Durch die Möglichkeit der Abarbeitung von Datensätzen wird sowohl die Einzelbrief- als auch die Serienbrieffunktionalität unterstützt.
  • Die Daten können ebenso über direkte API Schnittstellen per Programmcode aus einzelnen Feldern abgefragt und/oder neu gesetzt werden.
  • Für die befüllten Formularfelder kann zusätzlich angesteuert werden, ob sie später noch editiert werden können oder nur lesbar bleiben.


CIB pdf join

Mit CIB pdf join ist es möglich einzelne PDF Dateien/Bausteine aneinanderzufügen. Dabei sind als Übergabe auch verschlüsselte (Bedingung: Owner-Passwort für jede Datei bekannt) PDF Dateien möglich.


CIB pdf overlay

Mit CIB pdf overlay können verschiedene Objekte (z.B. Grafik, Text) auf eine Seite unter Angabe der Position aufgestempelt werden. Eine detaillierte Beschreibung zu diesem Werkzeug finden Sie im Kapitel „Briefpapierfunktion, Overlay von Texten, Grafiken und Barcodes“.


CIB pdf linearized

Mit CIB pdf linearized kann das PDF weboptimiert abgespeichert werden und die vorrangig anzuzeigenden Seiten können damit favorisiert werden.

Dies ist insbesondere während Internet-Downloads von Interesse, um dem Betrachter schnelle Anzeigen zu ermöglichen.


CIB pdf print

Mit dem CIB pdf print Interpreter aus der CIB pdf toolbox kann eine PDF-Datei direkt ausgedruckt werden. Optional steht auch eine Schnittstelle für eine interaktive Druckerselektion und weiterer Druckeigenschaften zur Verfügung.

Es ist auch möglich PDF Dateien in den Druckvorschau-/ Seitenansicht-Modul CIB view/jView vorher anzuzeigen und von dort auszudrucken.

Zusätzlich ist aus dem CIB view&form Modul auch eine PDF Formularfeldbearbeitung möglich.


CIB pdf split

Mit dem CIB pdf print Interpreter aus der CIB pdf toolbox kann eine PDF-Datei direkt ausgedruckt werden. Optional steht auch eine Schnittstelle für eine interaktive Druckerselektion und weiterer Druckeigenschaften zur Verfügung.

Es ist auch möglich PDF Dateien in den Druckvorschau-/ Seitenansicht-Modul CIB view/jView vorher anzuzeigen und von dort auszudrucken.

Zusätzlich ist aus dem CIB view&form Modul auch eine PDF Formularfeldbearbeitung möglich.


CIB pdf interpreter

Der in der CIB pdf toolbox enthaltene PDF Interpreter liefert insbesondere auch Fremdherstellern von PDF Oberflächen/Werkzeugen wichtige Detailinformationen zu PDF Dateien.


CIB pdf format

Die CIB pdf toolbox ermöglicht mit Ihren Werkzeugen auch das Umformatieren der geladenen PDFs in veränderte Zielstrukturen z.B. in PDF/A.


4. Nutzungsmöglichkeiten im Formularbereich

Die CIB pdf toolbox bietet optimale Möglichkeiten ein PDF Formularmanagement zu unterstützen.

Zum Einmischen von Nutzdaten in bestehende PDF-Formulare ist der CIB pdf merge die geeignete Anwendung. Die Unterstützung einer weboptimierten und/oder verschlüsselten Ausgabe ist dabei selbstverständlich.

Bei PDF Dokumenten ohne Formularfelder können variable Daten, Zusatztexte, Graphiken oder Formularfelder zum späteren interaktiven Befüllen mittels CIB pdf overlay an der gewünschten Position aufgebracht werden.

Damit werden praktisch alle Varianten, ein Formular mit Daten zu befüllen, abgedeckt.

Zusätzlich gibt es die Möglichkeit Auswertungen über die Felder eines Formulars zu machen. Man kann mit der CIB pdf toolbox:

  • Alle enthaltenen Formularfelder abfragen
  • Alle Feldtypen eines Formulars abfragen („Button“, „Check“, „Radio“, „Text“, „List“, „Combo“) und auch unbekannte Typen (z.B. Signatur) erkennen.
  • Inhalt eines Feldes abfragen
    • bei Checkboxen und Radiobuttons ist das der Statename (Exportwert)
    • bei Textfeldern der Text
    • bei Listboxen der ausgewählte Wert (bei Multiselect die ausgewählten Werte durch ; getrennt)
    • bei Comboboxen der in dem Editfeld erscheinende Wert
  • zusätzlich mögliche Werte abfragen
    • bei Checkboxen, Radiobuttons, List- und Comboboxen: eine Liste der möglichen Werte, durch ; getrennt
  • zusätzliche Feldoptionen abfragen
    • derzeit nur „MaxLen=“ bei Textfeldern mit MaxLen>0

 In Verbindung mit den Oberflächenmodulen CIB view , CIB image oder jView ist interaktives Befüllen, Speichern und Drucken von PDF Formularen möglich, sofern die Felder nicht für das Editieren gesperrt wurden.

Ebenso wird in Verbindung mit diesen Komponenten ein direkter (Silent) PDF Druck unterstützt.


4.1. PDF-Dokumente mit XFA-Formulardaten

In PDF-Dokumenten können die Formular-Felder und deren Inhalte auch als XFA-Daten enthalten sein. Die Verarbeitung dieser Daten ist ab CIB pdf toolbox Version 1.4.89 möglich.

In der PDF-Spezifikation 1.5 wurde in PDF die Unterstützung von interaktiven Formularen eingeführt, die auf der XML-Architektur basieren. XFA (XML Forms Architecture) enthält die Informationen über das Formular in einem XML-Datenstrom. Hier geht es im Wesentlichen um die Formularfelder (Berechnungen, Validierungen, Formatierung) und die damit verbundenen Daten. XFA wurde von dem kanadischen Unternehmen JetForm entwickelt. Adobe erwarb dieses Unternehmen und führte XFA in seine PDF-Spezifikation und in die darauf basierenden Acrobat-Versionen 6 und 7 ein.

CIB pdf toolbox wandelt bei der Verarbeitung von XFA-Formularfeldern diese Informationen in ein normales PDF-Formularfeld um. Die XFA-Daten werden gelöscht. Dabei gehen Informationen verloren, die keine Entsprechung im PDF haben, z.B. numerisches oder Datums-Format.


4.2. Wie verhält sich die CIB pdf toolbox bei mehreren PDF Formularen?

Wenn man mehrere PDF Formulare mit einer CIB pdf toolbox Funktion verarbeiten möchte, dann kann es je nach gewähltem Verarbeitungsschritt zu Einschränkungen kommen, für die folgende Regeln gelten:

CIB pdf join

Beim Zusammenhängen von mehreren PDF Formularen kann es zu Situationen kommen, bei denen Formularfelder mit gleichem Namen in mehreren der Quellformulare auftreten. Folgende Regeln gelten dabei für das erzeugte PDF Zielformular:

  • Die gleichnamigen Formularfelder müssen vom gleichen Feldtyp sein, ansonsten bricht der „Join-Vorgang“ ab.
  • Globale Eigenschaften eines Formularfeldes – das sind Eigenschaften, die alle Felder gleichen Namens gemeinsam haben – werden grundsätzlich vom ersten Dokument übernommen.

Ausnahmen:

Die Eigenschaft „Text verbergen“ wie bei Passwortfeldern genießt Vorrang vor dem obigen Prinzip.

Die Elemente einer Listbox, werden um die Elemente des zweiten Dokuments erweitert.

Das gleiche gilt für Kombinationsfelder.

  • Lokale Eigenschaften von Formularfeldern bleiben erhalten.
  • Hierarchische Verfeinerungen eines existierenden Feldnamens sind nicht erlaubt.

Beispiel: Besitzt ein Dokument ein Formularfeld mit dem Namen „Säugetier.Wal“
und ein weiteres Dokument  ein Formularfeld mit dem Namen „Säugetier.Wal.Delfin“
so würde der „Join-Vorgang“ der beiden Dokumente abbrechen. Der Grund liegt darin,
dass für die gängigsten Pdf-Reader diese Situation nicht vorgesehen ist.

Wichtiger Hinweis:

Grundsätzlich hat die aufrufende Anwendung auch die Möglichkeit den Formularfeldern jedes beteiligten Einzelformulars ein Präfix voranzustellen, so dass beim zusammenfügen mehrerer Formulare zu einem großen PDF Formular, alle Felder einen eindeutigen Feldnamen haben. Siehe Property: FormfieldNamePrefix


4.3. Formularfelder entfernen, aber die Ansicht behalten

Es ist möglich, Formularfelder aus Pdf Dokumenten zu entfernen, aber die optische “Ansicht” dieser Formularfelder zu erhalten. Dazu muss bei einem Aufruf von Pdf Join die Property FlattenFormfields “1” gesetzt werden.

Propertybezeichnung

Typ

Funktionalität

Art

FlattenFormfields

String

Ist diese Property gleich „1“ gesetzt, so werden die Formularfelder entfernt, aber die optische „Ansicht“ dieser Formularfelder bleibt erhalten.

Mögliche Werte:

„0“: Es wird nichts getan. (default)

„1“: Alle Formularfelder werden entfernt, aber die optische „Ansicht“ dieser Formularfelder bleibt erhalten.
Allerdings bleiben nur Formularfelder sichtbar, die auch auf dem Bildschirm sichtbar sind. Ist z.B. ein Formularfeld nur beim Ausdrucken sichtbar, so ist es nach dem Aufruf von FlattenFormfields nicht sichtbar.
Außerdem sind auch alle optischen Effekte, die durch JavaScript bewirkt werden, nicht sichtbar. Die Ansicht nach dem Aufruf von FlattenFormfields ist die gleiche wie bei einem Pdf Reader, bei dem „JavaScript“ deaktiviert ist.
Bei OutputFormat=FormatText wird der Inhalt der Formularfelder in den Textoutput geschrieben.

Set



5. PDF/A Konvertierung

Mit der CIB pdf toolbox können PDF-Dateien in das Archivformat PDF/A konvertiert werden. Als Ausgabeformate werden derzeit die Ausprägungen PDF/A-1b, PDF/A-2b und PDF/A-3b unterstützt.

Das gewünschte Ausgabeformat der zu erzeugenden PDF/A-Datei wird über die CIB pdf toolbox Property „PdfVersion“ gesetzt.


5.1. Empfehlungen und Hinweise

Allgemein
Formularfelder im PDF
PDF/A und Verschlüsselung
Signaturen in PDF/A
PDF Inhalte als Bilder in PDF/A
Einbetten von Dateianhängen in PDF/A-3

Allgemein

Im Folgenden werden einige „Best Practises“ und Hinweise für die Konvertierung von PDF-Dateien in PDF/A-Dateien aufgeführt.
Bei der Erzeugung von PDF/A-Dateien aus vorliegenden PDF-Dateien ist grundsätzlich zu beachten, welche Eigenschaften von PDF-Dateien laut entsprechender PDF/A Spezifikation (ISO 19005-1, ISO 19005-2, ISO 19005-3) erlaubt sind.

Beispiele:

  • Bei der Konvertierung nach PDF/A-1b und PDF/A-2b werden Anhänge in PDF-Dateien nicht ins PDF/A übernommen, diese werden entfernt.
  • JavaScript Elemente in PDF-Dateien werden generell entfernt.

Formularfelder im PDF

Bei der Konvertierung nach PDF/A werden die in der PDF-Datei verwendeten Schriftarten in die erzeugte PDF/A-Datei eingebettet. Sind Formularfelder mit Inhalt in der PDF-Datei enthalten, so werden die gesamten zugehörigen Schriftarten ins Ergebnisdokument eingebettet. Die Dateigröße kann sich dadurch erheblich erhöhen.

Um nur die verwendeten Zeichen der zugehörigen Schriftarten in das Ergebnisdokument einzubetten, empfehlen wir die Property „FlattenFormfields“ auf den Wert „1” zu setzen. Die optische Repräsentation der Formularfelder bleibt dadurch erhalten, das Formularfeld selbst wird entfernt. Nähere Informationen dazu sind hier nachzulesen.


PDF/A und Verschlüsselung

Bei der Konvertierung in das Archivformat PDF/A wird eine Verschlüsselung generell entfernt. Weiterführende Informationen zu Verschlüsselung und Passwortschutz sind hier nachzulesen.


Signaturen in PDF/A

Aktuell wird das Signieren nur für die Versionen PDF/A-2b und PDF/A-3b unterstützt. Detaillierte Informationen zum Signieren von PDF finden sich in hier.


PDF Inhalte als Bilder in PDF/A

Über die Property „ImagePdfCreation“ kann gesteuert werden, dass die Seiten einer zu konvertierenden PDF-Datei über CIB renderer als Grafiken in die PDF/A-Datei geschrieben werden.

Hinweis:
Da die Seiten als Grafiken im PDF/A eingebettet werden ist eine Textsuche auf diesen Seiten nicht möglich. Durch zusätzliches Setzen der Property ImagePdfCreationPreserveText kann erreicht werden, dass Textinhalte die in der Eingabedatei vorhanden sind mittels HOCR Export dennoch in die Ausgabedatei übernommen werden.
Durch die Darstellung als Grafik hat dies auch Einfluss auf die Dateigröße der erstellten PDF/A-Datei. Die Auflösung der Grafiken ist standardmäßig auf 150 DPI eingestellt. Anpassungen sind über die Property “TiffResolution“ möglich.


Fehlerbehandlung mit PdfAFallback

Für den Fall, dass Elemente einer PDF-Seite nicht nach PDF/A konvertiert werden können, wird eine Fehlermeldung ausgegeben. Um trotzdem ein gültiges PDF/A Dokument zu erstellen kann die Property „PdfAFallback“ gesetzt werden. Über die Property wird gesteuert, dass in einem solchen Fall die betreffende Seite automatisch über den CIB renderer als Grafik in die PDF/A-Datei konvertiert wird. Die möglichen Übergabeparameter sind hier aufgeführt.


Einbetten von Dateianhängen in PDF/A-3

In Archivformat PDF/A-3 sind eingebettete Dateien (Dateianhänge) erlaubt. Zu den eingebetteten Dateien können zusätzliche Beschreibungen über die Werte der Property „EmbeddedFiles“ (siehe hier) angegeben werden.


5.2. Spezielle Optionen für PDF/A

Propertybezeichnung

Propertybezeichnung

Typ

Funktionalität

Art

PdfAFallback

(ab CIB pdf toolbox 1.12.0)

String

Steuert, ob bei Auftreten eines Fehlers bei der PDF/A Konvertierung automatisch die betreffende Seite über CIB renderer als Grafik konvertiert wird.

Mögliche Werte:

„0“   Bei einem Fehler während der PDF/A Konvertierung wird ein Rückgabewert gesetzt(default).

„1“   Bei einem Fehler wird die entsprechende Seite über den CIB renderer als Grafik konvertiert.

Set

PdfVersion

String

Setzen der zu erzeugenden PDF/A Version.

Gültige Werte:

„PDF/A-1b“                  Nach ISO 19005-1

„PDF/A-2b“                  Nach ISO 19005-2

„PDF/A-3b“                  Nach ISO 19005-3

Get/Set

SkipPageXmpCheck

(ab CIB pdf toolbox 1.20.0)

String

Über diese Property kann die Behandlung der auf Seiten-Ebene im PDF vorhandenen XMP Metadaten bei der PDF/A-Konvertierung gesteuert werden.

Mögliche Werte:

0       Default
Alle im PDF vorhandenen XMP Metadaten werden entfernt und in der PDF/A-Ausgabe auf Dokument-Ebene durch XMP-Metadaten mit Standardwerten ersetzt.

1       Die auf Seiten-Ebene vorhandenen XMP Metadaten werden ungeprüft in die PDF/A-Ausgabe übernommen.
In diesem Fall ist der Anwender dafür verantwortlich, dass diese Daten PDF/A konform sind.

Set

ImagePdfCreationPreserveText

(ab CIB pdf toolbox 1.21.0)

String

Über diese Property kann gesteuert werden, dass im Falle eines PDF/A-Fallbacks (PdfAFallback=1, Details siehe Beschreibung zur Property PdfAFallback) extrahiert und in das erzeugte PDF/A eingebettet wird.

Der Textinhalt wird aus dem PDF extrahiert, in das HOCR-Format konvertiert und als HOCR in das PDF/A eingebettet.

Mögliche Werte:

0          Default
Keine Textextraktion

1          Der Textinhalt wird extrahiert und in das PDF/A eingebettet

Set


6. PDF Signatur mit Zertifikat

(Ab CIB pdf toolbox Version 1.6.115)


6.1. Allgemeine Informationen zur PDF-Signatur

Allgemein
Signieren/Verifizieren mit der CIB pdf toolbox
Signieren/Verfizieren im CIB pdf toolbox merge
Signieren/Verfizieren im CIB pdf toolbox join

Allgemein

Es gibt zwei Typen von PDF-Signaturen.

a.) Byte Range Signatur:

Bei einer Byte Range Signatur handelt es sich um eine Signatur, die alle Bytes des fast gesamten PDFs abdeckt.

b.) Object Digest Signatur:

Hiervon gibt es zwei Arten.

  • PDF 1.5: Ein “object digest” ist ein Hash-Algorithmus, der beim Durchlaufen eines Teilbaums der Objekte des PDFs ausgeführt wird.
  • PDF 1.6 und höher: Dafür wird die zweite Art empfohlen. Die Einträge wie in der ersten Art werden gesetzt, ohne jedoch einen Hash-Algrithmus zu durchlaufen.

Zum Verifizieren der Signatur muss die Anwendung das vorliegende Dokument mit dem signierten vergleichen und dabei prüfen, ob Änderungen an Objekten vorgenommen wurden, die durch die Signatur-Einträge nicht erlaubt sind.

Signieren:

Die CIB pdf toolbox unterstützt sowohl die “DocMDP” (= Modification Detection Prevention) object digest Signatur als auch die “Lock” object digest Signatur. Beide sind nur in einer Pdf Datei mit Pdf Version größer gleich 1.5 erlaubt. Zum Lesen der DocMDP-Signatur ist ein Adobe Reader der Version 7.0 oder höher erforderlich.

Verifizieren der Signatur:

Zurzeit wird von der CIB pdf toolbox nur geprüft, ob das PDF nach dem Signieren nochmal geändert wurde. Ist dies der Fall, ist das PDF ungültig.

Es wird noch nicht geprüft, welche Änderung durchgeführt wurde und ob diese vielleicht erlaubt ist. Eine diesbezügliche Erweiterung der CIB pdf toolbox ist vorgesehen.

Hinweis: UR3 Signaturen werden zwar geprüft und das Ergebnis in den Trace geschrieben, aber ansonsten wird das Ergebnis ignoriert.


Signieren/Verifizieren mit der CIB pdf toolbox

PDFs können sowohl mit dem CIB pdf toolbox Merge (-fm) als auch mit dem Join (-fj) signiert werden. Im Falle mehrerer Ausgabe-PDFs wird (von beiden Modulen) jedes PDF einzeln signiert.

Durch die Verarbeitung mit der CIB pdf toolbox werden eventuell in den Eingabe-PDFs vorhandene Signaturen ungültig und können daher nicht in das Ausgabe-PDF übernommen werden, da bei der Verarbeitung der interne Aufbau des PDFs verändert wird.

Beim Signieren des Ausgabe-PDFs werden alle alten Signaturen aus den Eingabe-PDFs entfernt. Wenn die Ausgabe nicht signiert wird, kann das Entfernen der alten Signaturen aus der Eingabe durch Setzen der Property RemovePdfSignatures=”1” erreicht werden.

Wenn durch die Module CIB pdf toolbox Merge oder Join die PDF Signaturen verfiziert werden soll, so muss dies explizit durch Setzen der Property „CheckPdfSignatures=1“ angestoßen werden. Dann werden alle Signaturen aller Eingabe-PDFs geprüft.


Signieren/Verfizieren im CIB pdf toolbox merge

Im CIB pdf toolbox merge (CIB runshell -fm) ist nur eine Eingabedatei möglich. Enthält diese Eingabedatei eine Signatur, so wird diese nur dann verifiziert, wenn CheckPdfSignatures=1 gesetzt ist.

Im CIB pdf toolbox merge sind eine oder mehrere Ausgabedateien möglich. Beim Signieren wird jede Ausgabedatei mit einer eigenen Signatur versehen.


Signieren/Verfizieren im CIB pdf toolbox join

Im CIB pdf toolbox join (CIB runshell -fj) sind eine oder mehrere Eingabedateien möglich. Enthalten eine oder mehrere dieser Eingabedateien eine Signatur, so werden diese nur dann verifiziert, wenn CheckPdfSignatures=1 gesetzt ist.

Im CIB pdf toolbox join sind auch eine oder mehrere (SplitPages=1) Ausgabedateien möglich. Beim Signieren wird dann jede Ausgabedatei mit einer eigenen Signatur versehen.


6.2. Properties zum Signieren und Verfizieren der Signatur

Propertybezeichnung

Typ

Funktionalität

Art

SignPdf

String

Property, mit der das Signieren des Ausgabe-PDFs eingeschaltet werden kann.

Mögliche Werte:

„0“       kein Signieren (default)

„1“       PDF wird signiert

Eventuell in den Eingabe-PDFs enthaltene Signaturen werden standardmäßig gelöscht.
Falls SignPdf=1, muss NeedAppearances=0 gesetzt werden. (Es wird dann im Pdf Dokument das Feld „/NeedAppearances“ „false“ gesetzt.) Sonst ist die erzeugte Signatur im Adobe Signatur Fenster nicht sichtbar.

Set

SignPdf.DocMDP

String

Die Signatur bekommt den Typ „DocMDP“ (Autorensignatur).

Das bedeutet, dass im PDF nachträglich nur Änderungen vorgenommen werden dürfen, die vom Autor explizit erlaubt wurden. Andere Änderungen machen die Signatur ungültig.
Voraussetzungen: SignPdf=1 und die Pdf Version der Ausgabe-Pdf-Datei ist größer gleich 1.5.

Mögliche Werte:

„“    Keine DocMDP Signatur (default)

„1“   Keine Änderungen erlaubt

„2“   Erlaubt sind:
Ausfüllen von Formularfeldern Erzeugen neuer Seiten aus Seiten-Schablonen
Signieren

„3“   Erlaubt sind:
wie “2”,
zusätzlich: alle Änderungen in Kommentaren

sonst: keine DocMDP Signatur

Hinweis: Dokumente mit DocMDP-Signatur können nur von Adobe Reader 7.0 oder höher gelesen werden.

Set

SignPdf.Lock

String

Die Signatur bekommt den Typ Lock. D.h. es sind keinerlei Änderungen an Formularfeldern erlaubt bzw. es dürfen keine sichtbaren Signaturen mehr hinzugefügt werden.

Voraussetzungen: SignPdf=1, SignPdf.DocMDP ist nicht gesetzt, und die Pdf Version der Ausgabe-Pdf-Datei ist größer gleich 1.5.

Mögliche Werte:

„0“   Keine Sperrung des Dokuments (default)

„1“   Dokument ist im obigen Sinne gesperrt. Dies entspricht der Option „Lock Document After Signing“ von Adobe Professional. Im Adobe Reader wird angezeigt:”The document is locked by that signature”.

Set

CertificateFilename

String

Angabe des Namens (ggf. mit Pfad) der Zertifikats-Datei. Dabei muss es sich um ein PKCS12-Zertifikatsfile handeln (übliche Endung „.p12“ oder „.pfx“).

Die Signierung mit PEM-Datei(en) ist noch nicht verfügbar. Sie ist noch nicht hinreichend getestet. Es können mehrere PEM-Dateien angegeben werden. Diese müssen durch einen Strichpunkt (;) getrennt sein. Alle Dateien zusammen müssen genau einen privaten Schlüssel enthalten. Außerdem muss der öffentliche Schlüssel und (optional) die Schlüsselkette des Signierers enthalten sein. Wenn die PEM-Dateien mehrere private Schlüssel enthalten, wird der erste private Schlüssel verwendet, der zum „CerticatePassword“ passt.

Set

CertificatePassword

String

Angabe des Passwortes für die Zertifikatsdatei.

Set

RemovePdfSignatures

String

Über diese Property wird gesteuert, ob in den Eingabedateien vorhandene Signaturen gelöscht werden oder nicht.

Mögliche Werte:

„0“     Es werden keine Signaturen entfernt.

„1“     Es werden alle Signaturen entfernt.

Es gibt ein unterschiedliches Standard-Verhalten:
Beim Signieren (SignPdf=1), ist standardmäßig RemovePdfSignatures=“1”
Ansonsten (und damit auch beim Verifizieren, CheckPdfSignatures=1) ist standardmäßig RemovePdfSignatures=“0”.

Set

RemovePdfSignaturesKeepAppearance

String

Diese Property wird nur angewendet, wenn entweder RemovePdfSignatures=1 oder SignPdf=1 gesetzt sind.

Mögliche Werte:

„0“     Beim Entfernen der Signaturen wird auch der sichtbare Teil der Signatur entfernt. (default)

„1“     Beim Entfernen der Signaturen wird der sichtbare Teil der Signatur (z.B. ein Bild oder ein Text) beibehalten. Die Signatur selbst wird aber entfernt.

Set

CheckPdfSignatures

String

Über diese Property wird gesteuert, ob in den Eingabedateien vorhandene Signaturen geprüft werden oder nicht.

Mögliche Werte:

„0“     Es werden keine Signaturen geprüft. (default)

„1“       Es werden alle Signaturen geprüft.

Set

TrustedCertificatesDirectory

String

Verzeichnis, das die vertrauenswürdigen Zertifikate (mit den öffentlichen Schlüsseln) für die CIB pdf toolbox enthält.

Zum Überprüfen der Vertrauenswürdigkeit der Signatur-Zertifikate im Pdf Dokument bei CheckPdfSignature=”1” ist dieses Verzeichnis zwingend erforderlich.

Default: ””.

Falls diese Eigenschaft leer ist, kann nicht überprüft werden, ob die Signatur-Zertifikate vertrauenswürdig sind. Aber die Verifizierung der Signatur wird trotzdem nicht abgebrochen!

Folgende Zertifikatsfiles mit öffentlichen Schlüsseln werden unterstützt:

            CER-files („.cer“) in DER- und Base64-Codierung

            CRT-files („.crt“) in DER- und Base64-Codierung

            PEM-files („.pem“)

            P7B-files („.p7b“) in DER-Codierung

            P7C-files („.p7c“) in DER-Codierung

            SPC-files („.spc“) in DER-Codierung
Dateien mit anderen Endungen werden ignoriert.
Die Zertifikatsdateien sollten nur öffentliche Schlüssel enthalten.

Set

OutputFormat

String

Das Prüfverhalten (also nur bei CheckPdfSignature=”1”) der CIB pdf toolbox wird durch die Belegung der Property “OutputFormat” gesteuert. Dafür wurde ein neuer Wert ”FormatAnalyse” eingeführt.

-      OutputFormat=”FormatAnalyse”
Der Prüf-Prozess wird immer komplett durchgeführt und die SignedDocument.xxx-Properties für die Signatur gesetzt. Dadurch kann verfolgt werden, welche Verarbeitungsschritte erfolgreich waren und welche nicht.
 

-      OutputFormat ungleich“FormatAnalyse”
Sobald die Signatur einer Eingabedatei nicht gültig ist, wird die Verarbeitung mit Fehler abgebrochen und damit keine der SignedDocument.xxx-Properties gesetzt.
Nur bei erfolgreichem Durchlauf werden die SignedDocument.xxx-Properties gesetzt.

Set

SignedDocument.DocumentIsUnmodified

String

Für jedes Eingabe-PDF wird der Änderungsstatus ausgegeben.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Das Dokument wurde nach dem Signieren nicht mehr geändert.

“0”   Das Dokument wurde nach dem Signieren geändert.

“not implemented”  Diese Funktionalität wurde noch nicht implementiert.

“no signature”  Das PDF enthält keine Signatur.

Get

SignedDocument.DocumentModificationsAreAllowed

String

Für jedes Eingabe-PDF werden eventuell erfolgte Änderungen klassifiziert.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Achtung:
Diese Property ist noch nicht vollständig implementiert, daher kann häufig der Wert „not implemented“ auftreten.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Die nach dem Signieren erfolgten Änderungen sind erlaubt.

“0”   Die nach dem Signieren erfolgten Änderungen sind nicht erlaubt.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.DocumentSignatureDateIsValid

String

Für jedes Eingabe-PDF wird das Signaturdatum geprüft.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“”    Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Das Signaturdatum im PDF passt zu allen Datumsangaben in der Zertifikatskette.

“0”   Das Signaturdatum fehlt, oder es passt nicht zu mindestens einem Datum aus der Zertifikatskette.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.CertificateChainIsValid

String

Für jedes Eingabe-PDF wird geprüft, ob die Zertifikatskette durchgängig gültig ist.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“ ”   Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Die Zertifikatskette ist durchgängig gültig.

“0”   Mindestens ein Zertifikat in der Zertifikatskette ist nicht gültig.

“not implemented”    Diese Funktionalität wurde noch nicht implementiert.

“no signature”   Das PDF enthält keine Signatur.

Get

SignedDocument.CertificateIsTrusted

String

Für jedes Eingabe-PDF wird die Vertrauenswürdigkeit der Signaturen überprüft.
(Nur relevant für OutputFormat=“FormatAnalyse“ und CheckPdfSignatures=”1”)

Für jede Eingabedatei wird in Form einer Liste, durch „;“ getrennt, je ein Wert ausgegeben.
Z.B.: „1;0;no signature“.

Mögliche Werte:

“ ”   Nicht belegt durch die CIB pdf toolbox.   (default)

“1”   Ein Zertifikat aus der Zertifikatskette ist gültig. Und die Kette vom Zertifikat der Signatur bis zu diesem gültigen Zertifikat ist durchgängig gültig.

“0”   Es gibt kein gültiges Zertifikat in der Zertifikatskette. Oder die Kette vom Zertifikat der Signatur bis zu dem gültigen Zertifikat ist nicht durchgängig gültig.

“not implemented”    Die Property “TrustedCertificatesDirectory” ist nicht belegt.

“no signature”   Das PDF enthält keine Signatur.

Get


7. Passwörter und Verschlüsselung bei PDFs

Im Zusammenhang mit PDF Dateien tauchen oft die Begriffe „Owner Password“ (Eigentümer-Passwort) und „User Password“ (Benutzer-Passwort) auf.

Das Benutzer-Passwort muss bereits zum Lesen eines verschlüsselten Dokumentes eingegeben werden. Mit dem Benutzerkennwort ist es nicht möglich die Sicherheitseinstellungen beim Speichern zu ändern oder zurückzusetzen. Neben dem Schutz vor dem illegitimen Öffnen lassen sich zusätzliche Nutzungsbeschränkungen festlegen. Hierzu zählen: Drucken nicht zulässig, Dokument ändern nicht zulässig usw.

Das Eigentümer-Passwort berechtigt zur Änderung des Benutzerkennwortes oder der Berechtigungen. Wird das Eigentümer-Passwort bereits beim Öffnen einer mit Benutzer- und Eigentümer-Passwort geschützten Datei angegeben, treten die Nutzungsbeschränkungen, die durch die Berechtigungen festgelegt sind, nicht in Kraft.

Die CIB pdf toolbox verlangt für verschiedene Funktionen das Setzen von Passworten. Man kann beim Bearbeiten von PDF Dateien auch neue Passwörter für die Zieldatei vergeben.

Folgende Fragen und Antworten helfen Ihnen hoffentlich weiter:

  1. Kann ein PDF ein Owner-Passwort haben und kein User-Passwort?
    Ja, das ist der Fall wenn der Benutzer das PDF lesen aber nicht bearbeiten (bzw. speichern/drucken/was auch immer eingestellt ist) kann.
  2. Kann ein PDF ein User-Passwort haben und kein Owner-Passwort?
    Nein, in diesem Fall wird intern automatisch das Owner-Passwort gleich dem User-Passwort gesetzt.
  3. Welches der beiden Passwörter benötigt man, um die Datei im Reader überhaupt zu öffnen?
    Um das PDF im Reader zu öffnen, kann entweder das Owner-Passwort oder das User-Passwort angegeben werden.
  4. Ein PDF kann nicht gleichzeitig verschlüsselt sein und beide Passwörter leer haben. Wenn beide Passwörter leer sind, wird das PDF immer unverschlüsselt gespeichert.

7.1. Wie verhält sich die CIB pdf toolbox bei Passwortschutz?

Untere Tabelle gibt einen Überblick darüber, wie die CIB pdf toolbox passwort-geschützte PDF-Dateien verarbeitet. Am Beispiel eines Vorganges zum Aneinanderhängen von 2 PDF Dateien (CIB pdf join) sind alle denkbaren Varianten durchgespielt.

Hauptdatei = Erste Datei, die bei InputFilename angegeben wird.

 

Angehängte Datei hat kein Passwort

Angehängte Datei hat ein Eigentümer-Passwort

Angehängte Datei hat ein Eigentümer- und ein Benutzer-Passwort

Hauptdatei hat kein Passwort

Ergebnisdatei hat kein Passwort.

Ergebnisdatei hat das Passwort der angehängten Datei.

Ergebnisdatei hat hat das Passwort der angehängten Datei..

Hauptdatei hat ein Eigentümer-Passwort

Ergebnisdatei hat Eigentümer-Passwort der Hauptdatei.

Ergebnisdatei hat Eigentümer-Passwort der Hauptdatei.

Ergebnisdatei hat Eigentümerpasswort der Hauptdatei.

Hauptdatei hat ein Eigentümer- und Benutzer-Passwort

Ergebnisdatei hat Eigentümer- und Benutzer-Passwort der Hauptdatei.

Ergebnisdatei hat Eigentümer- und Benutzer-Passwort der Hauptdatei.

Ergebnisdatei hat Eigentümer- und Benutzer-Passwort der Hauptdatei.


Zusammenfassend lässt sich sagen:
Werden mehrere Dateien aneinandergehängt von denen auch mehrere Passwort-geschützt sind, so wird immer das erste gefundene Passwort für die Ausgabedatei genommen.

Die Tatsache, ob die Ergebnisdatei verschlüsselt wird und welcher Verschlüsselungs-Algorithmus hierfür verwendet wird, entscheidet sich nach der gleichen Logik wie in der Tabelle für das Passwort beschrieben wurde.

⚠️ Wenn das Ergebnisdokument einen neuen, eigenen Passwortschutz erhalten bzw. anders verschlüsselt werden soll, sind die Properties „OutputOwnerPassword“ und/oder „OutputUserPassword“ an den CIB pdf/join zu setzen.


7.2. Properties für Passwort-Schutz und Verschlüsselung

Propertybezeichnung

Propertybezeichnung

Typ

Funktionalität

Art

AllowPdfPermissions

(ab CIB pdf toolbox 1.8.3)

String

Über die Property kann gesteuert werden, ob bei der Verarbeitung die im PDF über das Owner-Passwort gesetzten Bearbeitungsrechte berücksichtigt werden.

 

Achtung:
Ein evtl. im PDF vergebenes User-Passwort muss gesetzt werden, sonst findet keine Verarbeitung statt.

Das erzeugte Ausgabe-PDF ist nicht verschlüsselt.

 

1          Rechte werden ignoriert

0          Rechte werden beachtet (default)

 

Bei der PDF/A Konvertierung eines mit Ownerpasswort geschützten PDF muss diese Property auf den Wert „1“ gesetzt werden. Andernfalls wird ein Fehler ausgegeben.

 

Set

EncryptDocumentPassword

(ab CIB pdf toolbox 1.18.0)

String

Über diese Property kann das Passwort für ein Passwort-geschütztes Dokument übergeben werden ohne die Detailangabe, ob es sich um ein EncryptUserPassword oder EncryptOwnerPassword handelt.

Die Syntax ist identisch zu der von diesen beiden Properties.

Wenn das EncryptDocumentPassword gesetzt wird, stellt die CIB pdf toolbox bei der Verarbeitung fest um welches Passwort es sich dabei handelt (User oder Owner).

Für die Rückmeldung dieser Information wurden die Metadaten PDFPERMISSION (= SECURITYINFO) um das Flag IsOwnerAccess erweitert:
1          Owner-Passwort
0          User-Passwort

Achtung:
Die SECURITYINFO Metadaten werden nur bei verschlüsselten Dokumenten gesetzt. Falls sie aldso nicht vohanden sind bedeutet das, dass das Dokument ungeschützt ist.

Set

EncryptOwnerPassword

String

Owner-Passwort (Eigentümer-Passwort) der Eingabedatei (bzw. der Eingabe­dateien) bzw. BackgroundFilename.
Die Passwörter sind in genau der Reihenfolge aufzulisten wie die zugehörigen Dateien innerhalb der Properties InputFilename /BackgroundFilename (durch „;“ getrennt).

Das Passwort selbst darf kein „;“ enthalten.

Set

EncryptUserPassword

String

User-Passwort (Benutzer-Passwort) der Eingabedatei (bzw. der Eingabe­dateien) bzw. BackgroundFilename.
Die Passwörter sind in genau der Reihenfolge aufzulisten wie die zugehörigen Dateien innerhalb der Properties InputFilename /BackgroundFilename (durch „;“ getrennt).

Das Passwort selbst darf kein „;“ enthalten.

Set

OutputOwnerPassword

String

Vergibt neues Owner-Passwort (Eigentümer-Passwort) für die Ausgabedatei.

Das Passwort selbst darf kein „;“ enthalten.

Set

OutputUserPassword

String

Vergibt neues User-Passwort (Benutzer-Passwort)  für die Ausgabedatei.

Das Passwort selbst darf kein „;“ enthalten.

Set

PdfUserPasswordPresent
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ oder „0“ = es ist kein User-Password vorhanden

“1” = User-Password ist vorhanden

Get

PdfOwnerPasswordPresent
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ oder „0“ = es ist kein Owner-Password vorhanden

“1” = Owner-Password ist vorhanden

Get

PdfVersion

String

Setzen der zu erzeugenden PdfVersion.

Gültige Werte:

“1.3”                Acrobat-Familie 4

“1.4”                Acrobat-Familie 5 (default)

“1.5”                Acrobat-Familie 6

“1.6”                Acrobat-Familie 7

„1.7“                Acrobat-Familie 8

Ab CIB pdf toolbox Version 1.4.109:
“1.7EL3“           Acrobat Familie 8
            (zum Öffnen ist ein Acrobat                 Reader ab Version 9 erforderlich!)

Hinweis:
Bei aktivierter Verschlüsselung werden folgende Verschlüsselungs-Algorithmen angewendet:
”1.3”                RC4-40, Revision 2
”1.4”                RC4-128, Revision 3
”1.5”                RC4-128, Revision 4
ab “1.6”            AES-128, Revision 4
ab „1.7EL3“      AES-256, Revision 5

Get/
Set

EncryptMetadata

(Ab CIB pdf toolbox Version 1.4.109)

String

Durch Setzen dieser Property kann der Benutzer steuern, ob die Metadaten im PDF verschlüsselt werden.
Bei den Metadaten handelt es sich um allgemeine Informationen zum PDF wie Autor, Erstellungsdatum etc. Format und Inhalt der Metadaten sind nicht festgelegt und hängen von dem Tool ab, das das PDF erstellt hat.

Mögliche Werte:
„0“       keine Verschlüsselung der Meta-
            daten
„1“       Metadaten werden verschlüsselt
            (default)

Hinweis:
Für die Verarbeitung dieser Property ist eine PdfVersion von mindestens 1.5 erforderlich.

Get/
Set

Die Einstellungen der folgenden Encryptxxx-Properties (Berechtigungen) werden generell mit dem Passwort aus der Eingabe in das Ausgabedokument übernommen. Siehe hierzu Kapitel „Wie verhält sich die CIB pdf toolbox bei Passwortschutz?“.
Bei unverschlüsselter Eingabe werden in der Ausgabe alle Schalter auf TRUE gesetzt.

Wird für das Ausgabedokument ein neues Passwort (OutputOwnerPassword, OutputUserPassword) vergeben, können die Berechtigungen durch Setzen der folgenden Encryptxxx-Properties neu vergeben werden.

EncryptEnableAssembling

String

Dokumentzusammenstellung für die Ausgabedatei genehmigen.

Mögliche Werte:
“1“ oder „TRUE“            erlaubt
“0“ oder „FALSE“          nicht erlaubt  

Set

EncryptEnableClipboard

String

Kopieren von Inhalt für die Ausgabedatei genehmigen.

Mögliche Werte:
“1“ oder „TRUE“            erlaubt
“0“ oder „FALSE“          nicht erlaubt

Set

EncryptEnableExtract

String

ScreenReader-Programme (z.B. für Sehbehinderte) können auf den Inhalt zugreifen. Der Benutzer darf Text und Grafiken nicht aus der PDF-Datei kopieren, wenn dieser Wert gesetzt ist.

Mögliche Werte:

„0“       keine Erlaubnis (default)

„1“       Aktion erlaubt

Set

EncryptEnableForms

String

Ausfüllen von Formularfeldern für die Ausgabedatei genehmigen.

Mögliche Werte:
“1“ oder „TRUE“            erlaubt
“0“ oder „FALSE“          nicht erlaubt

Set

EncryptEnableModifying

String

Der Benutzer darf die PDF-Datei verändern (Text hinzufügen etc.), wenn dieser Wert gesetzt ist.

Mögliche Werte:

„0“       keine Erlaubnis (default)

„1“       Aktion erlaubt

Set

EncryptEnableNotes

String

Der Benutzer darf der PDF-Datei Text Notes und AcroForm Felder hinzufügen und vorhandene ändern, wenn dieser Wert gesetzt ist.

Mögliche Werte:

„0“       keine Erlaubnis (default)

„1“       Aktion erlaubt

Set

EncryptEnablePrinting

String

Drucken für die Ausgabedatei genehmigen.

Mögliche Werte:
“1“ oder „TRUE“            erlaubt
“0“ oder „FALSE“          nicht erlaubt

Set

PdfEncryptionLevel
(ab CIB pdf toolbox 1.4.78)

String

Liefert die Verschlüsselungstiefe, welche größer gleich 40 und immer ein Vielfaches von 8.

Get

PdfEncryptionAlgorithm
(ab CIB pdf toolbox 1.4.78)

String

Liefert den Wert des Verschlüsselungsalgorithmus.

„0“ = undokumentierter Algorithmus

„1“ = PDF-Verschlüsselung 40 bit (RC4-40)

„2“ = PDF-Verschlüsselung, 40 bit oder höher (RC4-128)

„3“ = undokumentierter Algorithmus

Ab CIB pdf toolbox 1.4.107:

„4“ = AES-128

Ab CIB pdf toolbox 1.4.109:

„5“ = AES-256


Bei den Fällen „4“ und „5“ ist benutzerdefinierte Verschlüsselung möglich. Hiermit ist das von Acrobat angebotene Feature „Metadaten unverschlüsselt“ gemeint.

Get

PdfPermissionAssemble
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = Tauschen von Seiten, erzeugen von Lesezeichen und Thumbnails erlaubt

„NotAllowed” = Tauschen von Seiten, erzeugen von Lesezeichen und Thumbnails nicht erlaubt

Get

PdfPermissionContentAccess
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = ausschneiden von Text und Grafik erlaubt

„NotAllowed” = ausschneiden von Text und Grafik nicht erlaubt

Get

PdfPermissionCopy
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = kopieren von Text und Grafiken erlaubt

„NotAllowed“ = kopieren von Text und Grafiken nicht erlaubt

Get

PdfPermissionFillFormFields
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = ausfüllen von Formularfeldern, einschließlich Signaturfeldern, erlaubt

„NotAllowed“ = ausfüllen von Formularfeldern, einschließlich Signaturfeldern, nicht erlaubt

Get

PdfPermissionModify

(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = Änderung ist erlaubt
(bit 3 gesetzt oder Dokument nicht verschlüsselt)

„NotAllowed“ = nicht erlaubt
(bit 3 nicht gesetzt)

Get

PdfPermissionModifyAnnotations

(ab CIB pdf toolbox 1.4.78)

String

add or modify text annotations and (if modify permission is true) form fields)

Mögliche Werte sind:

„“ = Änderung von Annotations ist erlaubt
(bit 5 gesetzt oder Dokument nicht verschlüsselt)

„NotAllowed“ = nicht erlaubt
(bit 5 nicht gesetzt)

Get

PdfPermissionPrint
(ab CIB pdf toolbox 1.4.78)

String

Mögliche Werte sind:

„“ = Drucken erlaubt

„NotAllowed“ = Druck nicht erlaubt

„Low Resolution“ = Druck nur in geringer Auflösung

Get

PdfPermissions

String

Bitfeld als Dezimalzahl, erlaubte Zugriffsarten ohne Hauptkennwort

Get


8. PDF-Informationen Auslesen

(Ab CIB pdf toolbox Version 1.6.116f)

Durch einen CIB pdf toolbox join können globale Dokumenten-Eigenschaften aus dem PDF ausgelesen werden. Dazu muss die Property OutputFormat auf den Wert “FormatInfo” gesetzt werden. Als Eingabedokument darf nur eine PDF Datei angegeben werden. Die Angabe einer Ausgabedatei wird ignoriert. Außer dem Auslesen der Dokumenten-Eigenschaften findet keine weitere Verarbeitung statt.

Die Werte aus dem PDF werden in Properties übertragen. Konkret handelt es sich um folgende Properties:

PageCount:                                          Anzahl Seiten im Dokument

DocInfo.Author:                                   Verfasser

DocInfo.Title:                                       Titel

DocInfo.Subject:                                   Betreff

DocInfo.Keywords:                              Schlüsselwörter

DocInfo.CreationDate:                         Erstellungsdatum

DocInfo.ModDate:                                Änderungsdatum

PdfPermissionAssembly:          Tauschen von Seiten, erzeugen von Lesezeichen und Thumbnails (nicht) erlaubt

PdfPermissionContentAccess: Ausschneiden von Text und Grafik (nicht) erlaubt

PdfPermissionCopy:                 Kopieren von Text und Grafik (nicht) erlaubt

PdfPermissionFillFormFields:    Ausfüllen von Formularfeldern, einschließlich Signaturfeldern, (nicht) erlaubt

PdfPermissionPrint:      Drucken (nicht) erlaubt

Ab CIB pdf toolbox Version 1.20 können zusätzlich Informationen zu den Schriftarten und Bildern in einem PDF Dokument ausgegeben werden.

Dazu muss zusätzlich die Property FilterInfo mit den Optionen „FilterInfo=FontsInfo;ImagesInfo“ gesetzt werden. Damit werden die Ausgabeproperties FontsInfo und ImagesInfo befüllt.

ImagesInfo hat dabei folgende JSON Syntax:

[
\{”ID”:<NumID>, “Height”:<NumHeight>, “Width”:<NumWidth>, “IsMask”:<true/false>, “CompressionMethod”:”<Method>”, “CompressedSize”:<Size>}
,...]


Beispiel:

[
\{”ID”:15, “Height”:32, “Width”:32, “IsMask”:false, “CompressionMethod”:”DCTDecode”, “CompressedSize”:256}
,...]


FontsInfo hat folgende JSON Syntax:

[ \{”ID”:<NumID>, “Name”:”<FontName>”, “Type”:”<FontType>”,”Embedded”:<true/false>,”CompressedSize”:<NumericSize>}} ...]


Beispiel:

[ \{”ID”:10, “Name”:”Courier”, “Type”:”Type1”,”Embedded”:true,”CompressedSize”:1024}}, ...]


9. Lesezeichen hinzufügen oder entfernen

(Ab CIB pdf toolbox 1.6.116 )

Mit Hilfe des CIB pdf toolbox Join können Lesezeichen (Bookmarks bzw. Outlines) aus PDF Dokumenten entfernt oder neue hinzugefügt werden. Dies geschieht mit Hilfe der folgenden Properties:

Propertybezeichnung

Typ

Funktionalität

Art

OutlinesDeleteExisting

String

Über diese Property kann man alle Outlines und Bookmarks aus den Eingabe Dokumenten entfernen.

Mögliche Werte:

„0“: Die vorhandenen Outlines werden nicht entfernt. (default)

„1“: Alle vorhandenen Outlines werden entfernt.

Set

OutlinesAdd

String

Über diese Property kann man neue Outlines und Bookmarks in das Ausgabe Pdf Dokument einfügen. Falls schon Bookmarks vorhanden sind und erhalten bleiben sollen (d.h. OutlinesDeleteExisting=0), werden die neuen Bookmarks an die vorhandenen angefügt. Mögliche Werte:

„ “: Es werden keine Outlines hinzugefügt. (default)

Ein nicht leerer String: Es werden die Outlines, die in dieser Property angegeben werden, in das Ausgabe-PDF eingefügt.
Bei falscher Syntax: Fehlercode 349 (CIBPDF_ERROR_OUTLINES_ADD_WRONG_FORMAT)
 

Syntax:

<outlinelist> ::= <outline> | <outline> “;” <outlinelist>

<outline> ::= <outline-with-descendants> | <outline-without-descendants>

<outline-with-descendants> ::= “{” <page> “;{” <destination> “};” <outlinetext> “;{” <outlinedescendants> “}}”

<outline-without-descendants> ::= “{” <page> “;{” <destination> “};” <outlinetext> “}” | “{” <page> “;{” <destination> “};” <outlinetext> “;{}}”

<page> ::= <Integer>

<outlinetext> ::= <Text>

<outlinedescendants> ::= <outlinelist>

<destination> ::= <XYZ> | <Fit> | <FitH> | <FitV> | <FitR> | <FitB> | <FitBH> | <FitBV>

<XYZ> ::= „XYZ“ „;“ <Integer> „;“ <Integer> „;“ <Integer>

<Fit> ::= “Fit”

<FitH> ::= “FitH” “;” <Integer>

<FitV> ::= „FitV“ „;“ <Integer>

<FitR> ::= „FitR“ „;“ <Integer> „;“ <Integer> „;“ <Integer> „;“ <Integer>

<FitB> ::= „FitB“

<FitBH> ::= „FitBH“ „;“ <Integer>

<FitBV> ::= „FitBV“ „;“ <Integer>

Details und Beispiele siehe nächste Abschnitte.

Set

(Ab CIB pdf toolbox 1.10.0 )

 

Property liefert einen String mit identischer Struktur zurück.

Get


Syntax von OutlinesAdd

In der Stringproperty OutlinesAdd können ein oder mehrere Lesezeichen (Outlines) eingetragen werden.

Syntax:

Outline1;Outline2;...;Outline3

Outlinen:  {Seitennummer;{Ansicht};Text;{Subbookmarks}}


Seitennummer

Eine ganze positive Zahl, die angibt, auf welche Seite das Lesezeichen verweist.

Z.B. “7”: Das Lesezeichen verweist auf Seite 7 des Ausgabe-Dokuments.
Speziell beim Join mehrerer Eingabe-PDFs zu einem Ausgabedokument ist die Tatsache wichtig, dass sich die Seitennummer auf das gejointe Ausgabedokument bezieht.


Ansicht

Ein String der festlegt, welcher Teil der Seite mit welchem Zoomfaktor angezeigt werden soll. Es gibt acht verschiedene Arten dieser “Ansicht”.

Diese werden in der folgenden Tabelle beschrieben. Dabei sind Zahl1, Zahl2, Zahl3 und Zahl4 jeweils ganze nichtnegative Zahlen. Mit “Fenster” ist das Anzeigefenster des Pdf Viewers, z.B. des Adobe Readers, gemeint.

Name der “Ansicht”

Syntax der “Ansicht”

Beschreibung der “Ansicht”

XYZ

XYZ;Zahl1;Zahl2;
Zahl3

Die angegebene Seite wird so angezeigt, dass die x-y-Koordinate (Zahl1;Zahl2) der Seite sich am linken oberen Rand des Fensters befindet. Zahl3 ist der Zoomfaktor für die Seite (Zahl3=1 ist z.B. ein Zoom von 100%, Zahl3=2 ein Zoom von 200%, usw.). Speziell Zahl3=0 bedeutet, dass der aktuelle Zoomfaktor unverändert bleibt.

Fit

Fit

Die angegebene Seite wird so stark vergrößert, dass die Seite das Fenster exakt ausfüllt. Ist das nicht exakt möglich, so wird die Seite so vergrößert, dass die Seite auf jeden Fall vollständig im Fenster sichtbar ist. Eine Dimension der Seite füllt dann exakt das Fenster aus. Die andere Dimension der Seite ist dann kleiner als das Fenster und ist innerhalb des Fensters mittig zentiert.

FitH

FitH;Zahl1

Die angegeben Seite wird so angezeigt, dass die y-Koordinate Zahl1 der Seite genau am oberen Ende des Fensters angezeigt wird. Gleichzeitig wird die Seite genau so weit vergrößert, dass die Seite in der Breite das Fenster exakt ausfüllt.

FitV

FitV;Zahl1

Die angegeben Seite wird so angezeigt, dass die x-Koordinate Zahl1 der Seite genau am linken Rand des Fensters angezeigt wird. Gleichzeitig wird die Seite genau so weit vergrößert, dass die Seite in der Höhe das Fenster exakt ausfüllt.

FitR

FitR;Zahl1;Zahl2;
Zahl3;Zahl4

Die Werte (Zahl1;Zahl2;Zahl3;Zahl4) sind die Koordinaten eines Rechtecks innerhalb der Seite in der Darstellung (x-Wert-Links;y-Wert-Unten;x-Wert-Rechts;y-Wert-Oben). Die Seite wird genau so angezeigt und vergrößert, dass dieses Rechteck das Fenster exakt ausfüllt. Ist das nicht exakt möglich, so wird die Seite so vergrößert, dass das Rechteck auf jeden Fall vollständig im Fenster sichtbar ist. Eine Dimension des Rechtecks füllt dann exakt das Fenster aus. Die andere Dimension des Rechtecks ist dann kleiner als das Fenster und ist innerhalb des Fensters mittig zentiert.

FitB

FitB

Die angegebene Seite wird so stark vergrößert, dass der Begrenzungsrahmen (BoundingBox) der Seite das Fenster exakt ausfüllt. Ist das nicht exakt möglich, so wird die Seite so vergrößert, dass der Begrenzungsrahmen der Seite auf jeden Fall vollständig im Fenster sichtbar ist. Eine Dimension des Begrenzungsrahmens der Seite füllt dann exakt das Fenster aus. Die andere Dimension des Begrenzungsrahmens der Seite ist dann kleiner als das Fenster und ist innerhalb des Fensters mittig zentiert.

FitBH

FitBH;Zahl1

Die angegeben Seite wird so angezeigt, dass die y-Koordinate Zahl1 der Seite genau am oberen Ende des Fensters angezeigt wird. Gleichzeitig wird die Seite genau so weit vergrößert, dass der Begrenzungsrahmen (BoundingBox) der Seite in der Breite das Fenster exakt ausfüllt.

FitBV

FitBV;Zahl1

Die angegeben Seite wird so angezeigt, dass die x-Koordinate Zahl1 der Seite genau am linken Rand des Fensters angezeigt wird. Gleichzeitig wird die Seite genau so weit vergrößert, dass der Begrenzungsrahmen (BoundingBox) der Seite in der Höhe das Fenster exakt ausfüllt.

 

Beispiele:

a) {XYZ;100;200;3}
Die Seite wird so angezeigt, dass sich die Seitenkoordinate (x;y) = (100;200) am linken oberen Rand des Fensters befindet. Der Zoomfaktor für die Seite ist 300%.

b) {XYZ;200;300;0}
Die Seite wird so angezeigt, dass sich die Seitenkoordinate (200;300) am linken oberen Rand des Fensters befindet. Der Zoomfaktor für die Seite bleibt unverändert.

c) {FitH;200}
Die angegeben Seite wird so angezeigt, dass sich die y-Koordinate 200 der Seite genau am oberen Ende des Fensters befindet. Gleichzeitig wird die Seite genau so weit vergrößert, dass die Seite in der Breite das Fenster exakt ausfüllt.

d) {FitV;100}
Die angegeben Seite wird so angezeigt, dass sich die x-Koordinate 100 der Seite genau am linken Rand des Fensters befindet. Gleichzeitig wird die Seite genau so weit vergrößert, dass die Seite in der Höhe das Fenster exakt ausfüllt.

e) {FitR;20;40;100;400}
Das Rechteck mit den x-Koordinaten 20 und 100, und den y-Koordinaten 40 und 400 soll das Fenster ausfüllen. Ist das nicht exakt möglich, wird die Seite so vergrößert, dass das Rechteck auf jeden Fall vollständig im Anzeigefenster sichtbar ist. Eine Dimension des Rechtecks füllt dann exakt das Fenster aus. Die andere Dimension des Rechtecks ist dann kleiner als das Fenster und ist innerhalb des Fensters mittig zentriert.


Text

Ein String, der angibt, unter welchem Namen das Lesezeichen im Lesezeichenfenster des Viewers (z.B. von Adobe) dargestellt wird.

Wichtig:
Falls in dem Namen eines der Zeichen      ;{}\      vorkommt, muss dieses Sonderzeichen mit einem n Backslash “\” maskiert werden.

Beispiel:
Der Lesezeichenname im Viewer: “{Berlin;Hamburg}”
ergibt für den “Text” in “OutlinesAdd”: “\{Berlin\;Hamburg\}”
Der Lesezeichenname im Viewer: “Q\R; V\R; L\Z”
ergibt für den “Text”: “Q\\R\; V\\R\; L\\Z”.


Subbookmarks

Der Eintrag für “Subbookmarks” ist optional. Falls er vorhanden ist, gibt er ein oder mehrere Lesezeichen an, die Unterlesezeichen zu dem angegebenen Lesezeichen sind.

A) Wenn ein Lesezeichen keine Unterlesezeichen hat, kann das auf 2 Syntaxarten angegeben werden:

    a) Indem man den ganzen Eintrag und den Strichpunkt davor weg läst:     {Seitennummer;{Ansicht};Text}

    b) Oder indem man die geschweiften Klammern für die Subbookmarks leer läst:     {Seitennummer;{Ansicht};Text;{}}

Z.B.       {1;{Fit};Kapitel 1}      und     {1;{Fit};Kapitel 1;{}}       sind identische Lesezeichen und ohne Unterlesezeichen.

B) Falls die Subbookmarks vorhanden sind, bestehen sie aus einem oder mehreren Lesezeichen. Diese sind genauso aufgebaut wie die anderen Lesezeichen. Auf diese Weise läst sich eine ganze Kette von Haupt-, Unter- und Unterunterlesezeichen angeben.

Es folgen verschiedene Beispiele für diese “Lesezeichenverkettungen”. Dabei wird der Einfachheit halber als “Ansicht” immer “{Fit}” verwendet. Natürlich können in jedem einzelnen Lesezeichen auch alle anderen oben beschriebenen “Ansichten” verwendet werden. Die Farben dienen nur der besseren Verständlichkeit: Verschiedene Farben bedeuten verschiedene Einzellesezeichen.

    a)      {1;{Fit};Lesezeichen 1}

ist ein einzelnes Lesezeichen mit dem Namen “Lesezeichen 1”, welches auf Seite 1 verweist. Dieses hat keine Unterlesezeichen. Man kann das alternativ auch schreiben      {1;{Fit};Lesezeichen 1;{}}

    b)       {1;{Fit};1. Hauptkapitel 1};{4;{Fit};2. Hauptkapitel 2};{8;{Fit};3. Hauptkapitel 3}

sind drei (Haupt-)Lesezeichen. Keines von ihnen hat ein Unterlesezeichen. Das Lesezeichen mit dem Namen “1. Hauptkapitel 1” (violette Schrift) verweist auf Seite 1. Das Lesezeichen mit dem Namen “2. Hauptkapitel 2” (blaue Schrift) verweist auf Seite 4. Und das Lesezeichen mit dem Namen “3. Hauptkapitel 3” (grüne Schrift) verweist auf Seite 8.  

    c)      {1;{Fit};1. Hauptkapitel 1;{{4;{Fit};1.1. Unterkapitel 1};{7;{Fit};1.2. Unterkapitel 2}}}

gibt ein Lesezeichen mit dem Namen “1. Hauptkapitel 1” (schwarze Schrift) an, welches auf Seite 1 verweist. Dieses hat 2 Unterlesezeichen: Eines mit den Namen “1.1. Unterkapitel 1” (violette Schrift); welches auf Seite 4 verweist . Und eines mit dem Namen “1.2. Unterkapitel 2” (blaue Schrift), welches auf Seite 7 verweist.

    d)      {1;{Fit};1. Hauptkapitel 1;{{2;{Fit};1.1. Unterkapitel 1;{{3;{Fit};1.1.1. Unterunterkapitel 1;{{5;{Fit};1.1.1.1. Unterunterunterkapitel 1}}}}}}}

gibt ein Lesezeichen mit dem Namen “1. Hauptkapitel 1” (schwarze Schrift) an, dass auf Seite 1 verweist. Dieses hat ein Unterlesezeichen mit den Namen “1.1. Unterkapitel 1” (violette Schrift), das auf Seite 2 verweist. Dieses hat wiederum ein Unterlesezeichen mit dem Namen “1.1.1. Unterunterkapitel 1” (blaue Schrift), welches auf Seite 3 verweist. Und dieses hat wiederum ein Unterlesezeichen mit dem Namen “1.1.1.1. Unterunterunterkapitel 1” (grüne Schrift), welches auf Seite 5 verweist.

Die Struktur dieser Lesezeichen im Viewer würde wie folgt aussehen (Die Farben sind nur zur Verdeutlichung da. Die Lesezeichen im Pdf Viewer würden nicht diese Farben haben.):

1.         Hauptkapitel 1

1.1.      Unterkapitel 1

1.1.1. Unterunterkapitel 1

1.1.1.1. Unterunterunterkapitel 1

e)      {3;{Fit};1. Hauptkapitel 1;{{6;{Fit};1.1. Unterkapitel 1;{{9;{Fit};1.1.1. Unterunterkapitel 1};{11;{Fit};1.1.2. Unterunterkapitel 2;{{13;{Fit};1.1.2.1. Unterunterunterkapitel 1}}};{16;{Fit};1.1.3 Unterunterkapitel 3}}};{21;{Fit};1.2. Unterkapitel 2}}};{25;{Fit};2. Hauptkapitel 2;{}}

Die Struktur dieser Lesezeichen würde wie folgt aussehen:

1. Hauptkapitel 1

1.1.      Unterkapitel 1

1.1.1.           Unterunterkapitel 1

1.1.2.           Unterunterkapitel 2

1.1.2.1.   Unterunterunterkapitel 1

1.1.3            Unterunterkapitel 3

1.2.      Unterkapitel 2

2.                                                  Hauptkapitel 2

f)      {6;{Fit};1. Hauptkapitel 1;{{9;{Fit};1.1. Unterkapitel 1;{{12;{Fit};1.1.1. Unterunterkapitel 1;{{15;{Fit};1.1.1.1. Unterunterunterkapitel 1}}};{17;{Fit};1.1.2. Unterunterkapitel 2;{{21;{Fit};1.1.2.1. Unterunterunterkapitel 1};{23;{Fit};1.1.2.2. Unterunterunterkapitel 2}}}}};{25;{Fit};1.2. Unterkapitel 2}}};{28;{Fit};2. Hauptkapitel 2}

Die Struktur dieser Lesezeichen würde wie folgt aussehen:

1.         Hauptkapitel 1

1.1.      Unterkapitel 1

1.1.1.    Unterunterkapitel 1

1.1.1.1. Unterunterunterkapitel 1

1.1.2.    Unterunterkapitel 2

1.1.2.1.        Unterunterunterkapitel 1

1.1.2.2.        Unterunterunterkapitel 2

1.2.      Unterkapitel 2

2.         Hauptkapitel 2


10. Barcodeinformationen aus dem Pdf extrahieren

(ab CIB pdf toolbox Version 1.8.0)

Mit Hilfe des CIB pdf toolbox Join können Barcodes aus Barcode Bildern in PDF Dokumenten ausgelesen werden. Als Ausgabeformat für die Barcode-Informationen ist XML oder CSV möglich.

Die CIB pdf toolbox erzeugt aus PDF ein Metafile, das vom Modul CIB ocr weiterverarbeitet wird. Daher setzt diese Funktionalität das Modul CIB ocr mit entsprechender Lizenz voraus.


(ab CIB pdf toolbox Version 1.13.3):

Jetzt ist es möglich, alle CIB ocr StringProperties mit dem Prefix „CibOcr“ im Namen an die CIB pdf toolbox zu setzen. Diese Properties werden bei einem anschließenden OCR- bzw.  BarcodeAuslesen-Lauf an das Modul CIB  weitergereicht.

Beispiel:

CIB ocr hat die Property „DatamatrixScanGap=100“. An die CIB pdf toolbox setzt man die Property „CibOcrDatamatrixScanGap=100“, die dann beim CIB ocr Aufruf der CIB pdf toolbox  als DatamatrixScanGap mit Wert „100“ weitergereicht wird.

Propertybezeichnung

Typ

Funktionalität

Art

BarcodeRange

String

Diese Property enthält eine Liste von Barcodetypen, die durch Strichpunkte voneinander getrennt sind. Alle Bilder im PDF werden dahingehend überprüft, ob es sich um Barcodes der angegebenen Typen handelt. Die Suche kann auch auf Bereiche des PDFs eingeschränkt werden.

Syntax:

<barcoderangelist> ::= <barcodetypes> | <barcoderanges>

<barcoderanges> ::= <onebarcoderange> | <onebarcoderange> “;” <barcoderanges>

<onebarcoderange> ::= “{” <pagenumber> “}” | “{” <pagenumber> “;” <barcodetypes> “}” | “{” <pagenumber> “;” <barcodetype> “;” <rangeleft> “;” <rangebottom> “;” <rangeright> “;” <rangetop> “}”

<pagenumber> ::= <Integer>

<barcodetypes> ::= <onebarcodetype> | <onebarcodetype> “,” <barcodetypes>

<onebarcodetype> ::= “DataMatrix” | “Code128” | “CodeITF” | “Code39” | “Code39Extended” | “QR”

<rangeleft> ::= <Integer>

<rangebottom> ::= <Integer>

<rangeright> ::= <Integer>

<rangetop> ::= <Integer>

<rangeleft>, <rangebottom>, <rangeright>, <rangetop> sind positive ganze Zahlen in mm, der Ursprung (0;0) ist die linke untere Ecke der PDF-Seite.

„ “: (Property ist leer) Es werden alle Bilder des PDFs auf Barcode Informationen untersucht und dies wird mit den beiden Barcodetypen „QR“ und „DataMatrix“ durchgeführt. (default)

Ist die Property falsch belegt, wird der Errorcode 100 zurückgeliefert.

Beispiele siehe unten.

Set

BarcodeInfo

String

In diese Property werden die ausgelesenen Barcode-Informationen zurückgeliefert.
Falls eine Ausgabedatei (OutputFilename) und ein Speicherbereich (MemoryOutputCallback) angegeben werden, erfolgt die Ausgabe zusätzlich in diese Datei und in den Speicher.

Hinweis:
Durch einzelne Angaben (Ausgabedatei oder Speicherbereich) oder komplett ohne Angabe, wird der Wert für BarcodeInfo gar nicht gesetzt“.

Wird im angegebenen Bereich kein Barcode gefunden, bleibt die Property/Ausgabedatei leer.

Das Format der Ausgabe ist abhängig vom Inhalt der Property OutputFormat. Möglich sind OutputFormat= FormatBarcodeXml /FormatBarcodeCsv.

Der Koordinatenursprung (0;0) ist die linke untere Ecke der PDF-Seite.

OutputFormat=FormatBarcodeXml :

<barcodeimagexml> ::= <empty value> | „<?xml version=”1.0” encoding=”UTF-8” standalone=”yes”?><barcodeimages>“ <barcodeimagelist> „</barcodeimages>“

<barcodeimagelist> ::= <onebarcodeimage> | <onebarcodeimage> <barcodeimagelist>

<onebarcodeimage> ::= „<barcodeimage><pagenumber>“ <pagenumber> „</pagenumber><left>“ <imageleft> „</left><bottom>“ <imagebottom> „</bottom><right>“ <imageright> „</right><top>“ <imagetop> „</top><barcodeinfos>“ <barcodeinfolist> „</barcodeinfos></barcodeimage>“

<pagenumber> ::= <Integer>

<imageleft> ::= <Integer>

<imagebottom> ::= <Integer>

<imageright> ::= <Integer>

<imagetop> ::= <Integer>

<barcodeinfolist> ::= <onebarcodeinfo> | <onebarcodeinfo> <barcodeinfolist>

<onebarcodeinfo> ::= „<barcodeinfo type=”“ <barcodetype> „”“ <barcodecontent> „</barcodeinfo>“

<barcodetype> ::= „DataMatrix“ | „Code128“ | „CodeITF“ | „Code39“ | „Code39Extended“ | „QR“

<barcodecontent> ::= <Text>

 

OutputFormat=FormatBarcodeCsv:

<barcodeimagecsv> ::= <empty value> | <barcodeimagelistcsv>

<barcodeimagelistcsv> ::= <onebarcodeimagerow> | <onebarcodeimagerow> <barcodeimagelistcsv>

<onebarcodeimagerow> ::= <pagenumber> „;“ <imageleft> „;“ <imagebottom> „;“ <imageright> „;“ <imagetop> „;“ <barcodeinfolistcsv> <CR> <LF>

<pagenumber> ::= <Integer>

<imageleft> ::= <Integer>

<imagebottom> ::= <Integer>

<imageright> ::= <Integer>

<imagetop> ::= <Integer>

<barcodeinfolistcsv> ::= <onebarcodeinfocsv> | <onebarcodeinfocsv> „;“ <barcodeinfolistcsv>

<onebarcodeinfocsv> ::= „;“ | <barcodetype> „;“ <barcodecontent>

<barcodetype> ::= „DataMatrix“ | „Code128“ | „CodeITF“ | „Code39“ | „Code39Extended“ | „QR“

<barcodecontent> ::= „““ <Text> „““

Hinweise zu CSV:

-           Sollte der Original-Barcodetext ein Anführungszeichen  enthalten, so wird dies im CSV-Format durch zwei hintereinander folgende Anführungszeichen  “”  ersetzt.

-           Jedes Barcodeimage hat eine eigene “<onebarcodeimagerow>”-Zeile. Sollte ein Pdf-Image aus Bild und Maske bestehen und sollten beide Barcodeinformationen enthalten, werden sie als zwei “<onebarcodeimagerow>”-Zeilen eingetragen mit gleicher Seitennummer und gleichem Rechtsbereich.

-           Für jedes Barcodeimage werden die Barcodeinfos für verschiedene Barcodetypes am Ende durch den Strichpunkt getrennt angegeben. Dabei wird für jede Barcodeinfo erst der Barcodetype und dann der Barcodecontent angegeben.

-           Damit jede CSV-Zeile aus der gleichen Anzahl von (durch Strichpunkt getrennte) Spalten besteht, sind bei den einzelnen CSV-Zeilen (= <onebarcodeimagerow>) am Ende entsprechend viele “;;” angehängt.

 

Beispiele siehe unten.

Get

OCRDebug

String

Diese Property ist nur für technische Testzwecke von Bedeutung. Sie steuert die Ausgabe der Bilder aus dem PDF.

Mögliche Werte:

„1“     Die Zwischenschritte der Barcodeextraction mittels OCR werden als einzelne Dateien ausgegeben.

„0“     Keine Ausgabe Zwischenschritte (default)

Für jedes einzelne Bild im Pdf Dokument, welches an die CIB Ocr Dll übergeben wurde, werden mehrere Dateien ausgegeben:

-           Das Bild selbst als Bitmap wie es an OCR übergeben wurde.

-           Das Barcode Ergebnis der CIB Ocr Dll, falls das Barcodeergebnis nicht leer ist. Falls das Barcodeergebnis leer ist, wird diese Datei nicht ausgegeben.

Die Dateien werden in das gleiche Verzeichnis geschrieben wie die Ausgabedatei. Die Namen dieser Dateien haben folgende Form:

“Ausgabedatei”__Page_”Seitennummer”_Image_“Bildnummer“_“Dateiendung“

Für die “Dateiendung” gilt dabei:

-        Für die Bitmapdatei: „.bmp“

-        Für das Barcodeergebnis der CIB Ocr Dll: „_BARCODE.txt“

Beispiel:
Lautet das Ausgabedokument „Output.xml“, so werden für das 4. Bild der 3. Seite folgende Dateien ausgegeben:
Output.xml__Page_3_Image_4.bmp
Output.xml__Page_3_Image_4_BARCODE.txt

Set

 



10.1. Beispiele für BarcodeRange

  1. “Code128”
    Alle Bilder werden auf Barcodeinformationen überprüft, mit dem Barcodetype “Code128”.
  2. “QR;CodeITF;Code39;DataMatrix”
    Alle Bilder werden auf Barcodeinformationen überprüft, mit den Barcodetypen “QR”, “CodeITF”, “Code39” und “DataMatrix”.
  3. “{1}”
    Alle Bilder in der 1. Seite des Pdf Dokuments werden auf Barcodeinformationen überprüft. Dabei werden die Barcodetypen DataMatrix und QR verwendet.
  4. “{3;Code128}”
    Alle Bilder der Seite 3 werden auf Barcodeinformationen überprüft. Dabei wird der Barcodetyp Code128 verwendet.
  5. “{8;Code39,QR,DataMatrix}”
    Alle Bilder der Seite 8 werden auf Barcodeinformationen überprüft. Dabei werden die Barcodetypen Code39, QR und DataMatrix verwendet.
  6. “{13;CodeITF,QR};{22;Code39Extended,DataMatrix}”
    Alle Bilder der Seite 13 und 22 werden auf Barcodeinformationen überprüft. Das wird für die Bilder der Seite 13 mit den Barcodetypen CodeITF und QR durchgeführt. Für die Bilder der Seite 22 wird das mit den Barcodetypen Code39 und DataMatrix durchgeführt.
  7. “{2;DataMatrix,Code39;20;30;40;50}”
    Es werden alle Bilder überprüft, die auf der Pdf Seite 2 sind und innerhalb des Rechteckbereichs (Links;Unten;Rechts;Oben)=(20;30;40;50) sind. (Dieser Rechtecksbereich beginnt horizontal 20 mm vom linken Seitenrand entfernt und endet 40 mm vom linken Seitenrand entfernt. Er beginnt vertikal 30 mm vom unteren Seitenrand entfernt und endet 50 mm vom unteren Seitenrand entfernt.) Es werden die Barcodetypen DataMatrix und Code39 verwendet.
  8. “{6;Code39Extended;1;2;3;4};{24;CodeITF,Code39,DataMatrix;100;0;200;300}”
    Es werden überprüft: Alle Bilder der Seite 6, die im Rechtecksbereich (1;2;3;4) liegen (zwischen 1 mm und 3 mm vom linken Seitenrand entfernt und zwischen 2 mm und 4 mm vom unteren Seitenrand entfernt). Der dazu verwendete Barcodetyp ist Code39Extended. Ebenso alle Bilder der Seite 24, die im Rechtecksbereich (100;0;200;30) liegen. Die dazu verwendeten Barcodetypen sind CodeITF, Code39 und DataMatrix.
  9. “{15;DataMatrix,CodeITF;2;45;20;100};{11;QR};{16;Code39;5;10;15;20}”
    Es werden überprüft: Alle Bilder der Seite 15, die im Rechtecksbereich (2;45;20;100) liegen. Die dazu verwendeten Barcodetypen sind DataMatrix und CodeITF. Ebenso alle Bilder der Seite 11. Der dazu verwendete Barcodetyp ist QR. Auch alle Bilder der Seite 16, die im Rechtecksbereich (5;10;15;20) liegen. Der dazu verwendete Barcodetyp ist Code39.

Allgemein:

Sollten verschiedene Bereiche in der Aufzählung auf ein bestimmtes Bild passen, wird der erste passende Bereich innerhalb der BarcodeRange-Aufzählung verwendet und die Barcodetypen aus diesem Bereich selektiert.

10.2. Beispiele für BarcodeInfo, OutputFormat=FormatBarcodeXml

BarcodeInfo

“<?xml version=”1.0” encoding=”UTF-8” standalone=”yes”?>
<barcodeimages>
  <barcodeimage>   <pagenumber>23</pagenumber>     <left>30</left>     <bottom>100</bottom>     <right>200</right>     <top>600</top>     <barcodeinfos>       <barcodeinfo type=”Code39”>Der Inhalt des Barcodeimages 1.</barcodeinfo>       <barcodeinfo type=”Code39Extended”>Der Inhalt des Barcodeimages 1.</barcodeinfo>     </barcodeinfos>   </barcodeimage>   <barcodeimage>    <pagenumber>35</pagenumber>     <left>0</left>     <bottom>10</bottom>     <right>400</right>     <top>140</top>     <barcodeinfos>       <barcodeinfo type=”QR”>Der Inhalt des Barcodeimages 2.</barcodeinfo>       <barcodeinfo type=”DataMatrix”>Der Inhalt des Barcodeimages 2.</barcodeinfo>     </barcodeinfos>   </barcodeimage> </barcodeimages>”

bedeutet:

Es wurden 2 Barcodeimages entdeckt, die in den von BarcodeRange angegebenen Bereichen lagen. Das erste Barcodeimage war auf der Seite 23 und umfasst den folgenden Rechtecksbereich (Der linke Rand ist 30 mm vom linken Rand der Pdf Seite entfernt. Der untere Rand ist 100 mm vom unteren Rand der Pdf Seite entfernt. Der rechte Rand ist 200 mm vom linken Rand der Pdf Seite entfernt. Der obere Rand ist 600 mm vom unteren Rand der Pdf Seite entfernt.) Mit Hilfe der Barcodetypen Code39 und Code39Extended wurden erfolgreich Barcodeinformationen extrahiert. Diese lauten in beiden Fällen “Der Inhalt des Barcodeimages 1.”.

Das zweite Barcodeimage war auf der Seite 35. Der Rechtecksbereich ist hier (Links, Unten, Rechts, Oben) = (0;10;400;140). Hier wurden die Barcodetypen QR und DataMatrix erfolgreich angewendet. Die extrahierte Barcodeinformation für dieses Barcodeimage lautet für beide Barcodetypen “Der Inhalt des 2. Barcodeimages.”


10.3. Beispiele für BarcodeInfo, OutputFormat=FormatBarcodeCsv

  1. BarcodeInfo =2;10;30;200;400;QR;”Dies ist das Barcodeimage 1.”;;\r\n3;50;60;150;160;Code39;”Dies ist das Barcodeimage 2.”;Code39Extended;”Dies ist das Barcodeimage 2.”\r\n

    bedeutet:

    Es wurden 2 Barcodeimages entdeckt, die in den von BarcodeRange angegebenen Bereichen lagen. Das erste Barcodeimage war auf der Seite 2 und umfasst den folgenden Rechtecksbereich (Der linke Rand ist 10 mm vom linken Rand der Pdf Seite entfernt. Der untere Rand ist 30 mm vom unteren Rand der Pdf Seite entfernt. Der rechte Rand ist 200 mm vom linken Rand der Pdf Seite entfernt. Der obere Rand ist 400 mm vom unteren Rand der Pdf Seite entfernt.) Es wurde der Barcodetyp QR erfolgreich angewendet. Das Ergebnis war ‘Dies ist das Barcodeimage 1.’.

    Das zweite Barcodeimage war auf der Seite 3. Der Rechtecksbereich ist hier (Links, Unten, Rechts, Oben) = (50;60;150;160). Mit Hilfe der Barcodetypen Code39 und Code39Extended wurden erfolgreich die Barcodeinformationen extrahiert. Diese lauten in beiden Fällen ‘Dies ist das Barcodeimages 2.’.

    Beim ersten Barcodeimage wurde am Ende ‘;;’ eingefügt, weil im 2. Barcodeimage 2 Barcodeinformationen vorhanden waren und diese CSV-Zeile somit 2 Spalten mehr hätte.


  2. BarcodeInfo=15;10;30;200;400;CodeITF;”””Dies”” ist “”  “” das Barcodeimage;””Hallo”””;;\r\n

    Es wurde ein Barcodeimage entdeckt, das in den von BarcodeRange angegebenen Bereichen lag. Es war auf der Seite 15. Der Rechtecksbereich für dieses Image ist (Links, Unten, Rechts, Oben) = (10;30;200;400). Der Barcodetyp CodeITF wurde erfolgreich angewendet. Das Ergebnis war ‘”Dies” ist “  “ das Barcodeimage;”Hallo”’. (Die Doppelanführungszeichen im Barcodecontent müssen durch Einfachanführungszeichen ersetzt werden.)

11. Unterstützte Grafikformate

Welche Grafikformate durch die CIB pdf toolbox unterstützt werden, ist vom Verarbeitungsmodus der betroffenen PDFs abhängig. In den folgenden Kapiteln werden die verschiedenen Möglichkeiten beschrieben.

CIB pdf join/ CIB pdf merge
CIB pdf print / Aufbereitung für die CIB viewer
Grafik Overlay
Erzeugen von Grafikdateien
Text aus Grafiken in Pdf Dokumente mittels CIB ocr einfügen

CIB pdf join/ CIB pdf merge

Hier sind alle Grafikformate möglich, da die Bildobjekte nicht verarbeitet, sondern nur kopiert werden.


CIB pdf print / Aufbereitung für die CIB viewer

Unterstützt werden:

  • RAW (Bilddaten liegen in einem Format vor, das durch die Pdf-Spec. beschrieben ist)
  • JPG
  • TIFF
  • JBIG2 (ab CIB pdf toolbox Version 1.4.100)
  • JPEG2000 (ab CIB pdf toolbox Version 1.4.101)


Hinweise:

Die Bildobjekte in diesen PDFs enthalten kein komplettes JPG bzw. TIFF, sondern nur die Bilddaten selbst (also keine Farbpalette und Metadaten).

Für eine Verarbeitung von JBIG2 ist eine spezielle Library Jbig2dec.dll nötig. Die Bibliothek steht auch für Unix-Plattformen zur Verfügung.


Grafik Overlay

Unterstützt werden die Grafikformate BMP, JPG, GIF und PNG.

Detaillierte Informationen zu diesem Thema befinden sich im Kapitel „Overlayfunktion/Grafik“.


Erzeugen von Grafikdateien

(ab CIB pdf toolbox Version 1.4.102)

Über den Modul CIB pdf join der CIB pdf toolbox ist neben der PDF-Ausgabe auch das Erzeugen von Grafikdateien möglich.

Die Steuerung des Ausgabeformats erfolgt über die Property OutputFormat.
Unterstützt werden die folgenden Grafikformate:

  • FormatTiff
  • FormatPng,
  • FormatJpeg

Pro Seite im PDF wird eine Grafikdatei erzeugt, wobei die Dateinamen durch automatisches Nummerieren eindeutig gemacht werden. Nur bei TIFF ist eine mehrseitige Ausgabe in eine TIFF-Datei möglich.

Ab CIB pdf toolbox Version 1.5.113 stehen diese Grafikformate auch auf Unix-Plattformen zur Verfügung.

(ab CIB pdf toolbox Version 1.8.5a):

  • FormatBmp
  • FormatBmpLz4 ( BMP, wobei Daten nach lz4 Standard komprimiert sind).

(ab CIB pdf toolbox Version 1.9.0):

  • FormatJpegXR
  • FormatWebP (bei RenderingEngine=CIBRenderer)

Zu den einzelnen Grafikformaten kann über entsprechende Property-Belegung die Auflösung, Komprimierung, etc. näher spezifiziert werde.

Detaillierte Informationen zu diesem Thema befinden sich im Kapitel „CIB pdf/join / split“.

(ab CIB pdf toolbox Version 1.4.113)

Property OutputFormat = FormatExtractImages

Bei Angabe dieses Ausgabeformats werden alle Image-XObjects, die sich in den Eingabe-PDFs befinden, exportiert. Die Ausgabe erfolgt im TIFF-Format oder (bei bestimmten Pdf Bildobjekten) ins JPEG-Format unter der bei OutputFilename angegebenen Dateibezeichnung.

Bei den TIFF-Bildern besteht die Möglichkeit des Exports in eine einzige TIFF-Datei oder in eine eigene TIFF-Datei pro Bild. Details hierzu und zum Export der JPEG-Bilder siehe bei der Beschreibung der Property OutputFormat = FormatExtractImages.


PDF Layer Support

(Ab CIB pdf toolbox 1.40.0)

Die Verarbeitung und Darstellung von optionalen Inhaltsgruppen ist in der CIB pdf-Toolbox implementiert.

Optionale Inhalte werden innerhalb markierter Inhaltsströme und auch für XObjects und Annotations mit OC-Eintrag verarbeitet. Es ist in der Lage, mit doxiview zu kommunizieren, wobei Eingabe- und Ausgabeeigenschaften und JSON-basierte Argumente verwendet werden.

 

Propertybezeichnung

Funktionalität

Art

PdfLayers

Syntax:

PdfLayers={"RequestedStates":[{"LayerId":<Id1>,"State":"On"/"Off"},..., {"LayerId":<IdN>,"State":"On"/"Off"}]}

Wobei:

Id1...IdN sind numerische IDs der optionalen Inhaltslayer, und der State der Ebene ist "Off" (Aus, unsichtbar) oder "On" (Ein, sichtbar).

Hinweis:

Nach der ersten Verarbeitung einer PDF-Datei kann eine äußere Anwendung Informationen über die vorhandenen OC-Gruppen für die Standardkonfiguration aus der Ausgabeeigenschaft PdfLayersInfo erhalten.

Nach Kenntnis dieser Informationen kann die äußere Anwendung beliebige Zustände (sichtbar/nicht sichtbar) für beliebige OC-Ebenen anfordern.

Set

PdfLayersInfo

Die Ausgabeeigenschaft gibt Informationen über die vorhandenen optionalen Inhaltsebenen und ihre Zustände aus.

Syntax:

PdfLayersInfo={"Tree":[<LayerDescription>], "PageLayers":[<PageLayersDescription>]}

Wobei:

Tree ist ein Array, das die hierarchische Struktur der vorhandenen Ebenen in PDF beschreibt.

Tree enthält die Elemente: <LayerDescription> die eine Beschreibung jeder Ebene ist:

{"Name":"<LayerName>", "LayerId":<Id>,"Locked":true/false, "State":"On"/"Off", "RBGroups":[<RBId1>,...<RBIdN>],"Kids":[ <LayerDescription> ]}

 Wobei:

"LayerId": <Id> ist eine eindeutige Nummer, (Layer-Bezeichner, der für die Eingabeeigenschaft PdfLayers verwendet werden soll).

Locked: true/false zeigt an, ob ein Benutzer den aktuellen Zustand der Schicht umschalten kann.

Kids: Array, das alle Kids des layers beschreibt.

 

PageLayers ist eine Anordnung von Seiten und ihren Layern: <PageLayersDescription>

PageLayersDescription = {"PageIndex":<PageId>, LayerIds:[<LayerId>]}

 <PageId> ist ein Index einer Seite, beginnend mit 0

LayerIds ist ein Array von <LayerId> (numerische ID), das auf entsprechende LayerIds aus dem Tree-Objekt abgebildet werden kann.

Hinweis:

1. Wenn LayerDescription nur Name und Kids (keine LayerId- und State-Einträge) enthält, handelt es sich nicht um einen echten Layer, sondern um einen einfachen Knoten, der auf- und zugeklappt werden kann und weitere Layer enthält.Wenn LayerDescription alle Einträge enthält und auch Kids hat, dann ist der Layer ein Knoten, der ein- oder ausgeschaltet werden kann und auch andere Layer enthält.

2. Eine neue Aktion vom Typ SetOcgState wird zusätzlich in die Metadatei ausgegeben, um OCG-Switching mit Hilfe von Formularfeldern und Widget-Annotationen zu ermöglichen.

3. Die Output Property PDFLayersInfo wird auch mit OutputFormat=FormatInfo mit der entsprechenden FilterInfo ausgegeben.

Get


Text aus Grafiken in Pdf Dokumente mittels CIB ocr einfügen

(ab CIB pdf toolbox Version 1.6.116)

Bei Bildern in PDF-Dokumenten, die Text enthalten, kann man mittels des Moduls CIB ocr über die CIB pdf Toolbox diesen Text aus der Grafik extrahieren und als Text in das PDF Dokument einfügen. Hauptanwendungsgebiet für dieses Feature sind eingescannte PDF Dokumente, bei denen der Text nur als Bild vorliegt und somit keine Möglichkeit besteht, nach Text zu suchen oder Text zu kopieren.

Diese Funktionalität ist sowohl für Pdf Join als auch für Pdf Merge möglich. Sie setzt das Modul CIB ocr mit entsprechender Lizenz voraus.

Das Ergebnis ist ein PDF Dokument, das dem (oder den) Eingabedokumenten gleicht, aber (un)sichtbaren Text enthält, eben diesen extrahierten Text aus den Bildern. Nach diesem Text kann gesucht werden und er kann aus dem PDF Dokument herauskopiert werden.

Seit Toolbox Version 1.9.0 gibt es die Möglichkeit, solchen (un)sichtbaren Text aus externen Quellen zu importieren. D.h. der Text wird nicht mehr aus den Bildern des Pdf Dokuments extrahiert, sondern wird der Toolbox mittels der Eigenschaft „HocrInputData“ mitgeteilt. Diese Eigenschaft besteht aus einem oder mehreren Speicherblöcken, welche die Hocrdaten enthalten. Für das genau Format bitte die Eigenschaft unten ansehen.

Außerdem können seit Toolbox Version 1.9.0 alle erzeugten oder importierten Hocr-Daten als Multi-Hocr-Datei ausgegeben werden. Mittels der Eigenschaft HocrOutputFilename wird die Datei angegeben, in der die Hocrdaten gespeichert werden sollen.
Seit der Toolbox Version 1.10.0 ist auch der Import einer Multi-Page-HOCR-XML-Datei möglich. Dazu wird die Eigenschaft HocrInputData mit dem Pfad auf diese Datei belegt. Alle Informationen (wie Seitennummern, Fonts, …) sind in dieser HOCR-XML-Datei enthalten. Für diese Multi-Page-HOCR-XML-Datei werden die Eigenschaften FormatSearchablePdfTextColor, FormatSearchablePdfLayerName und FormatSearchablePdfDTDFolder unterstützt. Eine solche Multi-Page-HOCR-XML-Datei kann z.B. mit CIB format und dem Ausgabeformat FormatHocr erzeugt werden.

Properties:


Propertybezeichnung

Typ

Funktionalität

Art

OutputFormat

String

FormatSearchablePdf

Set

CurrentProgress

(ab CIB pdf toolbox Version 1.24.0

String

Über diese Property kann der Fortschritt des Texterkennungs-Prozesses von CIB ocr abgefragt werden.
Die CIB pdf toolbox überträgt hierbei unverändert den Inhalt der Methode CibOcrJobGetProgress des CIB ocr Moduls.

Die Property enthält damit einen String mit dem Aufbau:
<Aktuelle Seitennummer> <Gesamtzahl Seiten> <Verarbeitungsfortschritt für aktuelle Seite>

Für Details siehe „Technischer Leitfaden CIB ocr“, Kapitel „CibOcrJobGetProgress“

Get

DictionaryWorkSpace

String

Mit dieser Property hat man die Möglichkeit, den Pfad für die von CIB ocr benötigten Daten zu setzen.

Set

FormatSearchablePdfShowText

String

Es kann gesteuert werden, ob der in das Ausgabe-PDF eingefügte Text sichtbar ist oder nicht.

„1“       Text ist sichtbar

„0“       Text ist nicht sichtbar (default)

Set

FormatSearchablePdfRemoveImages

String

Es kann gesteuert werden, ob im Ausgabe-PDF die Bilder entfernt werden oder nicht.
Ein Setzen dieser Property ist nur möglich, falls „HocrInputData“ leer ist, und ist nur in Verbindung mit „FormatSearchablePdfShowText=1“ sinnvoll. Dann sind in dem Ausgabe PDF die Bilder durch sichtbaren Text ersetzt.

„1“       Bilder werden entfernt

„0“       Bilder bleiben erhalten (default)

Set

PdfVersion

(ab Version 1.6.116b)

String

Optional kann bei OutputFormat=FormatSearchablePdf auch die Property PdfVersion gesetzt werden. Dann entspricht das erzeugte PDF dem angegebenen PDF/A-Standard.

Hinweis: dies wird im Moment nur in Kombination mit FormatSearchablePdfShowText=0 unterstützt.

Mögliche Werte:

PDF/A-1b

PDF/A-2b

PDF/A-3b

Set

HocrInputData

(ab Version 1.9.0, Multi-Page-Format ab Version 1.10.0)

String

Mit diesem String hat man die Möglichkeit der Toolbox die Hocrdaten direkt zu importieren (anstatt sie aus den Bildern des Pdf Dokuments zu extrahieren). Ist dieser String leer (default), wird er nicht verwendet.

Ansonsten umfasst er eine Liste von Speicheradressen und Längen für Strings, die die Hocrdaten enthalten. Er muss in folgendem Format vorliegen:

Syntax:

HocrInputData ::= <OneHocrFile> [“;“ <OneHocrFile>] ...

OneHocrFile ::= “{” <Pagenumber> “};” <MemoryBlocks>

MemoryBlocks ::= [<MemoryBlocks-Delimiter> “;”] <MemoryBlock> [<MemoryBlocks-Delimiter> <MemoryBlock>] ...

MemoryBlock ::= <Address> <MemoryBlock-Delimiter> <Length>

MemoryBlock-Delimiter ::= Ein einzelnes Zeichen, das ungleich ‚;‘ und ‚\0‘ ist, z.B. ‚#‘ oder ‚?‘, am besten auch keine Ziffern oder Buchstaben.

Pagenumber ::= Seitennumber der Seite, für die die Hocrdaten angegeben werden.

Address :== Eine Dezimalzahl, welche die Adresse für einen Speicherbereich (memory block) für die Hocrdaten angibt.

Length ::= Eine Dezimalzahl, welche die Länge eines Speicherbereichs für die Hocrdaten angibt.

Beispiel:

HocrInputData=“{1};?;111?100?222?200;{2};113?100;{3};+;300+100+400+200“ bedeutet:

Seite 1 hat Hocrdaten in den Speicherbereichen (Adresse, Länge) (111, 100) und (222, 200); Seite 2 hat Hocrdaten in dem Speicherbereichen (113, 100); Seite 3 hat Hocrdaten in den Speicherbereichen (300, 100) und (400, 200).

Seit der Toolbox Version 1.10.0 ist auch ein Multi-Page-Format möglich:

Falls das erste Zeichen ungleich „{“ ist, so wird nur ein XML-HOCR-File angegeben. Dieses kann verschiedene einzelne XML-HOCR-Seiten umfassen. Die Datei muss in einem besonderen Format vorliegen, wie es z.B. von CIB format mit der Eigenschaft OutputFormat=FormatHocr erzeugt wird.

Set

HocrOutputFilename (ab Version 1.9.0)

String

Falls der String leer ist, werden keine Hocrdaten rausgeschrieben (default).

Falls der String nicht leer ist, werden in die Datei mit diesem Dateinamen alle verwendeten Hocrdaten als Multi-Hocr-Datei geschrieben.     Vor jedem einzelnen „Hocrteil“ wird die Zeile „<!-- CIB:page=Seitennummer -->“ geschrieben, wobei „Seitennummer“ die Seitennumer für den Hocrteil ist. (Z.B. „<!-- CIB:page=3 -->“ = Hocrdaten für Seite 3). Texte wie ‚CIB ocr testlicense‘ werden aus den Hocrteilen entfernt.

Set

OCRDebug

String

Diese Property ist nur für technische Testzwecke von Bedeutung. Sie steuert die Ausgabe der Bilder aus dem PDF.

Mögliche Werte:

„1“     Die Zwischenschritte der Barcodeextraction mittels OCR werden als einzelne Dateien ausgegeben.

„0“     Keine Ausgabe Zwischenschritte (default)

Für jedes einzelne Bild im Pdf Dokument, welches an die CIB Ocr Dll übergeben wurde, werden mehrere Dateien ausgegeben:

-           Das Bild selbst als Bitmap wie es an OCR übergeben wurde.

-           Das Barcode Ergebnis der CIB Ocr Dll, falls das Barcodeergebnis nicht leer ist. Falls das Barcodeergebnis leer ist, wird diese Datei nicht ausgegeben.

Die Dateien werden in das gleiche Verzeichnis geschrieben wie die Ausgabedatei. Die Namen dieser Dateien haben folgende Form:

“Ausgabedatei”__Page_”Seitennummer”_Image_“Bildnummer“_“Dateiendung“

Für die “Dateiendung” gilt dabei:

-        Für die Bitmapdatei: „.bmp“

-        Für das Barcodeergebnis der CIB Ocr Dll: „_BARCODE.txt“

Beispiel:
Lautet das Ausgabedokument „Output.xml“, so werden für das 4. Bild der 3. Seite folgende Dateien ausgegeben:
Output.xml__Page_3_Image_4.bmp
Output.xml__Page_3_Image_4_BARCODE.txt

Set

FormatSearchablePdfTextColor

(ab Version 1.10.0)

String

Diese Eigenschaft wird nur verwendet, falls OutputFormat=FormatSearchablePdf und FormatSearchablePdfShowText=“1“ und das erste Zeichen von HocrInputData ungleich ‚{‘ ist. Sie gibt die Farbe für den eingefügten Text an.

Mögliche Werte:

-           leerer String (default): Es wird schwarz als Standardtextfarbe verwendet.

-           Die Textfarbe ist gegeben in der Form „R;G;B“, wobei R, G und B natürliche Dezimalzahlen zwischen 0 und 255 sind. (R ist der Rotanteil, G ist der Grünanteil und B ist der Blauanteil). Z.B. „255;0;0“ ist rot.

Set

FormatSearchablePdfLayerName

(ab Version 1.10.0)

String

Diese Eigenschaft wird nur verwendet, falls OutputFormat=FormatSearchablePdf und FormatSearchablePdfShowText=“1“ und das erste Zeichen von HocrInputData ungleich ‚{‘ ist.

Sie gibt (falls angegeben) den Pdf-Ebenennamen (im Adobe Reader) für den eingefügten Text an.

Mögliche Werte:

-           Leerer String (default): Der eingefügte Text ist nicht Teil irgendeiner Pdf-Ebene.

-           Der eingefügte Text ist Teil der Pdf-Ebene mit diesem Ebenennamen.

Set

FormatSearchablePdfDTDFolder

(ab Version 1.10.0)

String

Diese Eigenschaft wird nur verwendet, falls OutputFormat=FormatSearchablePdf und FormatSearchablePdfShowText=“1“ und das erste Zeichen von HocrInputData ungleich ‚{‘ ist.

Sie ist eine Hilfseigenschaft und gibt (falls angegeben) den lokalen Pfad für die XHTML-DTD-Datei xhtml1-transitional.dtd an. Der Hintergrund ist: Der XML Parser liefert eine NetAccessorException. Und die W3C sagt, dass die Aufrufe der DTDs lokal gespeichert werden sollen.

Mögliche Werte:

-           Leerer String (default): Es wird nichts gemacht.

-           Die URL für xhtml1-transitional.dtd im HOCR-XML-file von HocrInputData wird durch einen Verweis auf die lokale Datei gleichen Namens ersetzt.

Set

FormatSearchablePdfConversionMode

(ab Version 1.18.0)

String

Diese Property definiert, in welcher Form die im PDF enthaltenen Bilder an CIB ocr übergeben werden.

Mögliche Werte:

FormatSearchablePdfConvertImages
Das bisherige Verhalten wird angewendet, d.h. jedes Bild einer Seite wird als eigenes Objekt behandelt.

FormatSearchablePdfConvertPages
Jede Seite wired in ein einziges Bild umgewandelt und an CIB ocr übergeben. Die Auflösung dieses Bildes kann über die Property TiffResolution gesteuert werden (Empfohlen sind Werte ab TiffResolution=150).

FormatSearchablePdfConvertAuto
Auf Seiten, die nur ein einziges Bild enthalten, wird das bisherige Verhalten angewendet. Auf alle anderen Seiten das Verhalten von „FormatSearchablePdfConvertPages“. . (Default)

Set

FormatSearchablePdfUseRotationHint

(ab Version 1.18.0

String

Wenn diese Property gesetzt ist, wird für jede Seite des PDFs die Information über eine Rotation an CIB ocr übergeben. Das verbessert die Erkennungsrate von CIB ocr bei gedrehten Seiten.
Dazu verwendet die CIB pdf toolbox die CIB ocr Property ImageRotationAngle.

Mögliche Werte:

0          Bisheriges Verhalten

1         Übergabe der Informationen über die Seiten-Rotation an CIB ocr. (Default)

Set

FormatSearchablePdfReplaceText

String

Diese Eigenschaft ist nur gültig für OutputFormat=FormatSearchablePdf

Wenn die Eigenschaft FormatSearchablePdfReplaceText NICHT gesetzt ist, wird das ursprüngliche Verhalten verwendet: pdf toolbox fügt immer neue CIB HOCR-Inhalte hinzu, ohne bestehende zu entfernen.

Wenn die Eigenschaft auf FormatSearchablePdfReplaceText=1 gesetzt ist, entfernt die pdf toolbox vorhandenen unsichtbaren CIB HOCR-Inhalt aus dem verarbeiteten Dokument, bevor ein neuer Inhalt hinzugefügt wird.

Die neue Eigenschaft FormatSearchablePdfReplaceText kann auch in Verbindung mit TextSelectionFilter verwendet werden:

Wenn FormatSearchablePdfReplaceText=1 und TextSelectionFilter einen Filter enthält, wird dieser Filter verwendet, um Text aus dem Originaldokument zu entfernen, bevor neuer HOCR-Text hinzugefügt wird.

 

Beispiele:

1. OutputFormat=FormatSearchablePdf FormatSearchablePdfReplaceText=1 - entfernt vorhandenen CIB-HOCR-Text, bevor neuer HOCR-Text hinzugefügt wird

2. OutputFormat=FormatDurchsuchbarPdf FormatSearchablePdfReplaceText=1 TextSelectionFilter={"Gruppen":["beliebig_unsichtbar"]} - entfernt jeglichen unsichtbaren Text (einschließlich CIB HOCR), bevor neuer HOCR-Text hinzugefügt wird.

 


12. Technische Schnittstellen

Dieses Kapitel gibt einen kurzen Überblick über die verfügbare API und derer Parameter. Allgemein gilt, daß man über die Funktion CibPdfSetProperty seine gewünschten Parameter in die CIB pdf toolbox setzt und dann eine Funktion CibPdfJoin oder CibPdfMerge aufruft.

CibPdfSetProperty
CibPdfGetProperty
CibPdfJoin
CibPdfMerge
CibPdfGetVersion
CibPdfGetError
CibPdfGetErrorText
CibPdfGetLastError
CibPdfGetLastErrorText
CibPdfEventNotifier
CibPDFshowPageSetupDialog
CibPdfShowPrintDialog
CibPdfShowPrintSetupDialog
MemoryOutputCallback
AbortDocCallback
CibPdfJobCreate
CibPdfJobFree
CibPdfJobMerge
CibPdfJobJoin
CibPdfJobShowPrintDialog
CibPdfJobShowPrintSetupDialog
CibPdfJobShowPageSetupDialog
CibPdfJobGetProperty
CibPdfJobSetProperty
CibPdfJobGetPropertyW
CibPdfJobSetPropertyW
CibPdfJobGetError
CibPdfJobGetErrorText
CibPdfJobCancel

CibPdfSetProperty

BOOL EXPORTFUNC CibPdfSetProperty (const char* a_pOptionName,

void* a_pOptionValue)

Mit dieser Funktion werden Eigenschaften für die CIB pdf toolbox gesetzt. Die Eigenschaften InputFilename, OutputFilename sowie Data müssen vor Aufruf von CibPdfMerge gesetzt werden. Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

char*

a_pOptionName

Name des gewünschten Konfigurationsparameters

void*

a_pOptionValue

Wert des gewünschten Konfigurationsparameters

 

 

Achtung:

Beachten Sie den Datentyp des jeweiligen Wertes


CibPdfGetProperty

BOOL EXPORTFUNC CibPdfGetProperty(const char* a_pOptionName,

void* a_pOptionValue, long a_lBufferLength)

Mit dieser Funktion können die aktuell gesetzten Eigenschaften der CIB pdf toolbox Komponente abgefragt werden. Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

char*

a_pOptionName

Name des gewünschten Konfigurationsparameters

void*

a_pOptionValue

Wert des gewünschten Konfigurationsparameters

long

a_lBufferLength

Länge des Puffers für den Optionsinhalt


CibPdfJoin

BOOL EXPORTFUNC CibPdfJoin()

Mit dieser Methode wird die Join Funktionalität gestartet. Mit der Funktion CibPdfSetProperty müssen vorher mindestens die Eigenschaften InputFilename und OutputFilename gesetzt werden. Beim Aneinanderfügen von verschlüsselten Pdfs muss für jede Datei das zugehörige Ownerpaßwort bekanntgegeben werden. Dies geschieht mittels der Property EncryptOwnerPassword. Die Funktion hat keine Parameter. Sie liefert TRUE wenn kein Fehler beim Ausführen dieser Funktion aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfMerge

BOOL EXPORTFUNC CibPdfMerge()

Mit dieser Methode wird der Merge-Durchlauf gestartet. Mit der Funktion CibPdfSetProperty müssen vorher mindestens die Eigenschaften InputFilename, OutputFilename und Data gesetzt werden. Die Funktion hat keine Parameter. Sie liefert TRUE wenn kein Fehler beim Ausführen dieser Funktion aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfGetVersion

BOOL EXPORTFUNC CibPdfGetVersion(unsigned long *a_iVersion)

Die Funktion liefert die aktuelle Versionsnummer der Cib pdfm Komponente zurück. Damit können Sie in Ihrer Applikation sicherstellen, daß eine Mindestversion vorliegt, wenn Sie etwa spezielle Programmeigenschaften benutzen, die erst ab einem bestimmten Release zur Verfügung gestellt wurden. Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

unsigned long &

a_lVersion

a_lVersion liefert die aktuelle Versionsnummer der CIB pdfm Komponente zurück. Der unsigned long-Wert liefert die Informationen in zwei Bereichen. Die ersten zwei Bytes enthalten den Versionszähler des Hauptreleases. Die Bytes 3 und 4 enthalten den zugehörigen aktuellen Releasezähler. Je nach Programmiersprache sind die Hi- und Lowbereiche entsprechend zu beachten (siehe  Schneller Einstieg).


CibPdfGetError

BOOL EXPORTFUNC CibPdfGetError (CibPdfHandle a_hJob, int*a_pErrorCode)

Mit dieser Funktion kann der aktuelle Fehlertext zu einem Auftrag nach dem Ausführen einer Funktion abgefragt werden.

Parameter:

Typ

Variable

Bedeutung

long

a_hJob

Handle des auszuführenden Auftrags

int *

a_iError

Platzhalter für die aktuelle Fehlernummer


CibPdfGetErrorText

BOOL EXPORTFUNC CibPdfGetErrorText(int a_iErrorId, char* a_pTextBuffer,

long a_lBufferLength)

Mit dieser Funktion kann der aktuelle Fehlertext zu einem Auftrag nach dem Ausführen einer Funktion abgefragt werden. Die Funktion liefert TRUE wenn kein Fehler beim Abholen des Fehlertextes aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

int

a_iErrorId

Fehlernummer

char

a_pTextBuffer

Textpuffer für den Fehlertext

long

a_lBufferLength

Länge des verfügbaren Textpuffers


CibPdfGetLastError

BOOL EXPORTFUNC CibPdfGetLastError(int *a_iError)

Mit dieser Funktion kann der aktuelle Fehlerstatus der CIB pdf Komponente nach dem Ausführen verschiedener Funktionen abgefragt werden. Die Funktion liefert TRUE wenn kein Fehler beim Ausführen dieser Funktion aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

int

a_iError

Platzhalter für die aktuelle Fehlernummer


CibPdfGetLastErrorText

BOOL EXPORTFUNC CibPdfGetLastErrorText(char* a_pTextBuffer,

long a_lBufferLength)

Mit dieser Funktion kann der aktuelle Fehlertext der CIB pdf toolbox Komponente nach dem Ausführen einer Funktion abgefragt werden. Die Funktion liefert TRUE wenn kein Fehler beim Abholen des Fehlertextes aufgetreten ist. Ansonsten wird FALSE zurückgegeben.

Parameter:

Typ

Variable

Bedeutung

int

a_pTextBuffer

Textpuffer für den Fehlertext

long

a_lBufferLength

Länge des verfügbaren Textpuffers

 


CibPdfEventNotifier

(ab CIB pdf toolbox Version 1.24.0)

Um die Verwendung der Callbacks zu ermöglichen muss in der rufenden Anwendung zu der in „CibPdfEventNotifier.h“ der CIB pdf toolbox definierten CibPdfEventNotifier Klasse eine abgeleitete Klasse implementiert werden.

Ebenso müssen deren abstrakte Methoden
CibPdfEventNotifier::OnPageStart(...)                und
CibPdfEventNotifier::OnPageImageOutput(...),
implementiert werden um die Callback-Daten empfangen zu können.

Der Pointer zu der Instanz der abgeleiteten Klasse wird (konvertiert in eine natürliche Zahl und als String dargestellt) der Property “EventNotifier” zugeordnet.

Die Methode „CibPdfEventNotifier::OnPageStart(...)“ wird von der CIB pdf toolbox zu Beginn der Verarbeitung jeder Seite gerufen. Sie liefert die „CibPdfEventPageInfo“-Datenstruktur und ein Kennzeichen zurück, über das die weitere Verarbeitung abgebrochen werden kann.

Die Methode „CibPdfEventNotifier::OnPageImageOutput(...)“ wird von der CIB pdf toolbox nach dem Rendern einer Seite und vor dem Speichern des Bildes gerufen. Sie liefert die „CibPdfEventPageImageInfo“-Datenstruktur und ein Kennzeichen zurück, über das das Speichern des Bildes verhindert werden kann.

class CibPdfEventNotifier
{
public: virtual void OnPageStart(CibPdfEventPageInfo* pageInfo, bool& abort) = 0; virtual void OnPageImageOutput(CibPdfEventPageImageInfo* imageInfo, bool& skipFileOutput) = 0;
};


CibPdfEventPageInfo

Die von der CIB pdf toolbox zu Beginn der Verarbeitung jeder Seite gelieferte „CibPdfEventPageInfo“-Datenstruktur hat den folgenden Aufbau:

struct CibPdfEventPageInfo
{
int pageIndex;
size_t pageWidth;
size_t pageHeight;
};

Parameter:

Typ

Variable

Bedeutung

int

pageIndex

Index der aktuellen Seite (0-basiert)

size_t

pageWidth
pageHeight

Breite und Höhe der aktuellen Seite in Pixel und der Standard-Auflösung von 72dpi

 

CibPdfEventPageImageInfo

Die von der CIB pdf toolbox nach dem Rendern einer Seite und vor dem Speichern des Bildes gelieferte „CibPdfEventPageImageInfo“-Datenstruktur hat den folgenden Aufbau:

struct CibPdfEventPageImageInfo
{
int pageIndex;
size_t imageWidth;
size_t imageHeight;
size_t imageStride;
size_t imageLength;
Format imageFormat;
const unsigned char* data;
};
enum Format {fRGB565, fRGB888, fBMP};


Parameter:

Typ

Variable

Bedeutung

int

pageIndex

Index der aktuellen Seite (0-basiert)

size_t

imageWidth
imageHeight
imageStride

Die Standard-Parameter einer Bitmap im DIB-format

(DIB = geräteunabhängiges Bitmap Format)

char*

Data

Komplette Bitmap im DIB-Format

size_t

imageLength

Deren Länge in Bytes


CibPDFshowPageSetupDialog

(ab CIB pdf toolbox Version 1.10.0)

BOOL EXPORTFUNC CibPdfShowPageSetupDialog(int *a_iButtonID);

Unter Windows startet diese Funktion mit dem Standard Druckertreiberdialog vom Betriebssystem. Hierüber können entsprechende Druckerkonfigurationen getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.


Parameter:

Typ

Variable

Bedeutung

int*

a_iButtonId

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

1 (COMOD_ID_OK)       OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

3 (COMOD_ID_CLOSE) Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

2 (CIB_ID_CANCEL)      Abbrechen-Button


Die Funktion liefert TRUE zurück wenn kein Fehler aufgetreten ist.


CibPdfShowPrintDialog

BOOL EXPORTFUNC CibPdfShowPrintDialog(int *a_iButtonID);

Unter Windows startet diese Funktion mit dem Standard Seitenauswahl-/Druckertreiberdialog vom Betriebssystem. Hierüber können entsprechende Druckerkonfigurationen und Seitenauswahlen getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.


Parameter:

Typ

Variable

Bedeutung

int*

a_iButtonId

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

CIB_ID_OK                     OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

CIB_ID_CLOSE                Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

CIB_ID_CANCEL             Abbrechen-Button


Die Funktion liefert TRUE zurück wenn kein Fehler aufgetreten ist.


CibPdfShowPrintSetupDialog

(ab CIB pdf toolbox Version 1.10.0)

BOOL EXPORTFUNC CibPdfShowPrintSetupDialog(int *a_iButtonID);

Unter Windows startet diese Funktion mit dem Standard Seitenauswahl-/Druckertreiberdialog vom Betriebssystem. Hierüber können entsprechende Druckerkonfigurationen getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.


Parameter:

Typ

Variable

Bedeutung

int*

a_iButtonId

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

CIB_ID_OK                     OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

CIB_ID_CLOSE                Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

CIB_ID_CANCEL             Abbrechen-Button


Die Funktion liefert TRUE zurück wenn kein Fehler aufgetreten ist.


MemoryOutputCallback

COMOD_CALLBACK_TYPE(COMOD_BOOL, MemoryOutputCallbackType) (const char* a_TextOutput, size_t a_Length, void*a_pUserdata, int a_Error)

Callback-Prototyp für Daten-Ausgabe im Speicher.

Parameter:

Typ

Variable

Bedeutung

char*

a_TextOutput

Die Daten, die über die Callbackfunktion übergeben werden.

size_t

a_Length

Die Byte-Anzahl der Daten.

void*

a_pUserdata

Zeiger auf beliebige Nutzerdaten.
Konkreter Typ hängt von der Implementierung der Callbackfunktion ab.

Int*

a_Error

Fehlercode, der vom Aufrufer an die Callbackfunktion übergeben wird.


Die Funktion liefert FALSE zurück wenn Fehler aufgetreten ist.


AbortDocCallback

(ab CIB pdf toolbox Version 1.10.0)

BOOL EXPORTFUNC AbortDocCallback(const ABORTDOCINFO* a_AbortDocInfo, void* a_pUserData)

typedef struct _abortdoc {unsigned long ulCurrentPage;unsigned long ulPageCount;} ABORTDOCINFO;

Callback-Prototyp für Daten-Ausgabe im Speicher. Die Callback wird nach jeder Seite des Dokumentes mit den Informationen zur aktuellen Seitenzahl und der Gesamtseitenzahl aufgerufen. Durch Rückgabe des Wertes „true“ wird die Konvertierung fortgesetzt, durch false erfolgt ein Abbruch der Konvertierung mit Rückgabewert 1000(userbreak).

Parameter:

Typ

Variable

Bedeutung

ABORTDOCINFO*

a_AbortDocInfo

Die Daten, die über die Callbackfunktion übergeben werden.

void*

a_pUserdata

Zeiger auf beliebige Nutzerdaten.
Konkreter Typ hängt von der Implementierung der Callbackfunktion ab.


Die Funktion liefert FALSE zurück wenn ein Abbruch gewünscht ist.


CibPdfJobCreate

COMOD_BOOL COMOD_API CibPdfJobCreate(CibPdfJobHandle*a_pJob, const char* a_pReserved)

Mit dieser Methode wird ein JobHandle erzeugt, welches dann mit Hilfe von CibPdfJobFree wieder freigegeben wird.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_pJob

Handle des auszuführenden Auftrags

char*

a_pReserved

 


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobFree

COMOD_BOOL COMOD_API CibPdfJobFree(CibPdfJobHandle*a_pJob);

Mit dieser Methode wird ein, mit Hilfe von CibPdfJobCreate erzeugtes JobHandle wieder freigegeben.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_pJob

Handle des freizugebenden Auftrags


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobMerge

COMOD_BOOL COMOD_API CibPdfJobMerge(CibPdfJobHandle a_hJob);

Mit dieser Methode wird ein PDF-Merge Job ausgeführt. Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobJoin

COMOD_BOOL COMOD_API CibPdfJobJoin(CibPdfJobHandle a_hJob);

Mit dieser Methode wird ein PDF-Join Job ausgeführt. Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobShowPrintDialog

COMOD_BOOL COMOD_API CibPdfJobShowPrintDialog(CibPdfJobHandle a_hJob, int* a_pButtonID);

Unter Windows startet diese Funktion mit dem Standard Seitenauswahl-/Druckertreiberdialog vom Betriebssystem. Hierüber können entsprechende Druckerkonfigurationen und Seitenauswahlen getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

Int*

a_pButtonID

 

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

1 (COMOD_ID_OK)       OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

3 (COMOD_ID_CLOSE) Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

2 (CIB_ID_CANCEL)      Abbrechen-Button


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobShowPrintSetupDialog

COMOD_BOOL COMOD_API CibPdfJobShowPrintSetupDialog(CibPdfJobHandle a_hJob, int* a_pButtonID);

Unter Windows startet diese Funktion mit dem Druckereigenschaftendialog des jeweiligen Treiberherstellers des gerade aktivierten Druckers. Hierüber können entsprechende Druckerkonfigurationen getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

Int*

a_pButtonID

 

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

1 (COMOD_ID_OK)       OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

3 (COMOD_ID_CLOSE) Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

2 (CIB_ID_CANCEL)      Abbrechen-Button


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobShowPageSetupDialog

COMOD_BOOL COMOD_API CibPdfJobShowPageSetupDialog(CibPdfJobHandle a_hJob, int* a_pButtonID);

Unter Windows startet diese Funktion mit dem Standard Druckertreiberdialog vom Betriebssystem. Hierüber können entsprechende Druckerkonfigurationen (Seite einrichten) getroffen werden, die beim anschließenden Drucken berücksichtigt werden. Diese Funktion ist für Anwendungen interessant, die den Druck immer mit einem Benutzerdialog ausführen wollen.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

Int*

a_pButtonID

 

Rückgabe der ButtonId die innerhalb der Druckauswahl gedrückt wurde.

1 (COMOD_ID_OK)       OK-Button (=> es sollte von Ihnen CibPrPrint im Anschluß aufgerufen werden)

3 (COMOD_ID_CLOSE) Schließen-Button (=> der Anwender hat den Drucker gewechselt möchte aber nicht sofort drucken)

2 (CIB_ID_CANCEL)      Abbrechen-Button


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobGetProperty

COMOD_BOOL COMOD_API CibPdfJobGetProperty(CibPdfJobHandle a_hJob, const char* a_pName, void*a_pValue, size_t a_MaxLength);

Mit dieser Funktion können die aktuell gesetzten Eigenschaften der CIB pdf toolbox Komponente abgefragt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

char*

a_pName

Name der gewünschten Property

void*

a_pValue

Wert der gewünschten Property

size_t

a_MaxLength

Länge des Puffers für den Optionsinhalt


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobSetProperty

COMOD_BOOL COMOD_API CibPdfJobSetProperty(CibPdfJobHandle a_hJob, const char* a_pName, void*a_pValue, size_t a_Length);

Mit dieser Funktion können die Properties für die Ausführung der CIB pdf toolbox Komponente gesetzt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

char*

a_pName

Name der gewünschten Property

void*

a_pValue

Wert der gewünschten Property

size_t

a_Length

 


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobGetPropertyW

COMOD_BOOL COMOD_API CibPdfJobGetPropertyW(CibPdfJobHandle a_hJob, const wchar_t* a_pName, const wchar_t*a_pValue, size_t a_MaxLength);

Mit dieser Funktion können die aktuell gesetzten Eigenschaften der CIB pdf toolbox Komponente abgefragt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

wchar-t*

a_pName

Name der Property in wchar_t* (UNICODE)

wchar-t*

a_pValue

Wert der Property in wchar_t* (UNICODE)

size_t

a_MaxLength

Die Byte-Anzahl der Daten


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobSetPropertyW

COMOD_BOOL COMOD_API CibPdfJobSetPropertyW(CibPdfJobHandle a_hJob, const wchar_t* a_pName, const wchar_t*a_pValue/*, size_t a_Length*/);

Mit dieser Funktion können die Properties für die Ausführung der CIB pdf toolbox Komponente gesetzt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

wchar-t*

a_pName

Name der Property in wchar_t* (UNICODE)

wchar-t*

a_pValue

Wert der Property in wchar_t* (UNICODE)

size_t

a_MaxLength

Die Byte-Anzahl der Daten


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobGetError

COMOD_BOOL COMOD_API CibPdfJobGetError(CibPdfJobHandle a_hJob, int*a_pErrorCode);

Mit dieser Funktion kann der aktuelle Fehlerstatus der CIB pdf toolbox nach dem Ausführen verschiedener Funktionen abgefragt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

int*

a_pErrorCode

Platzhalter für die aktuelle Fehlernummer


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobGetErrorText

COMOD_BOOL COMOD_API CibPdfJobGetErrorText(CibPdfJobHandle a_hJob, char* a_pText, size_t a_MaxLength);

Mit dieser Funktion kann der aktuelle Fehlertext zu einem Auftrag nach dem Ausführen einer Funktion abgefragt werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags

char*

a_pText

Textpuffer für den Fehlertext

size_t

a_MaxLength

Länge des verfügbaren Textpuffers


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


CibPdfJobCancel

(ab CIB pdf toolbox Version 1.24.0)

COMOD_BOOL COMOD_API CibPdfJobCancel(CibPdfJobHandle a_hJob);

Mit dieser Funktion kann der aktuelle Auftrag einer CIB ocr Texterkennung (CibOcrJobGetProgress) abgebrochen werden.
Das JobHandle muss vorher mit CibPdfJobCreate erzeugt worden sein.

Parameter:

Typ

Variable

Bedeutung

CibPdfJobHandle*

a_hJob

Handle des auszuführenden Auftrags


Die Funktion liefert TRUE wenn kein Fehler aufgetreten ist. Ansonsten wird FALSE zurückgegeben.


13. Allgemein gültige Properties

Die sogenannten „Properties“ oder Eigenschaften bilden ein wesentliches Kriterium vor dem Aufruf der eigentlich auszuführenden Methode. Alle unten im Klartext genannten Optionsnamen sind in den einzelnen Headerdateien der Komponenten auch als define deklariert und auch über diese defines in Ihrem Sourcecode ansprechbar. Die verschiedenen internen Module besitzen weitere spezielle Properties, die dort in den einzelnen Unterkapiteln beschrieben sind.

Zum Setzen der Optionen steht die Funktion CibPdfSetProperty und zum Abholen die Funktion CibPdfGetProperty zur Verfügung.

Propertybezeichnung

Typ

Funktionalität

Art

AnnotationsFilename

(ab CIB pdf toolbox 1.4.105)

String

Eingabedatei bzw. Speicherbereich im XFDF-Format, die die Kommentare enthält, die ins PDF importiert werden sollen.

Dies entspricht der Funktion „Kommentare importieren“ im Acrobat von Adobe.

Set

AnalysisFilename

(ab CIB pdf toolbox 1.14.4)

String

Schreibt Informationen über die Eigenschaften einer PDF Seite in eine Logdatei.

Syntax:
AnalysisFilename=“out.txt“

Die Analysedatei enthält derzeit nur Informationen über die Seitengröße und Ausrichtung.

Beispiel:
502;“297mm,210mm;portrait“
502;“297mm,210mm;landscape“

Es liegen 2 Seiten vor, mit den angegebenen Abmessungen in mm und jeweils den Ausrichtungen Hochformat und Querformat.

Diese Property kann mit der Property OutputFormat=FormatInfo kombiniert werden, so dass kein Ausgabedateiname angegeben werden muss.

Set

AntiAliasing

String

Einschalten der AntiAliasing-Funktionalität.

0     Kein AntiAliasing (default)

2     x2 AntiAliasing-Funktionalität für interne und Pango Rendering-Engine.

4     x4 AntiAliasing-Funktionalität für interne und Pango Rendering-Engine. (siehe auch RenderingEngine parameter)

Set

BookmarkAlignment

(ab CIB pdf toolbox 1.4.84)

String

„0“ = Kein Einfügen von Leerseiten

„1“ = Jede Ausfertigung wird durch Leerseiten auf eine gerade Seitenzahl erweitert.

Nur sinnvoll bei PDF-Join ohne OutputFormat=FormatPrinter.

Set

CallbackPointer

String

Benutzerdaten des Callbacks für Rückmeldung nach jeder Seite

Get/
Set

ColorDithering

(ab CIB pdf toolbox 1.4.86)

String

Ist diese Property gesetzt, werden bei der Ausgabe (als Bitmap oder beim Druck) alle Farbwerte in Schwarzweiß-Muster umgerechnet. Das Muster ergibt sich dann aus der Helligkeit des Farbwerts.

Mögliche Werte:
0          Keine Umrechnung (default)
1          Umrechnung

Get/
Set

Data

String

Angabe der Eingabedatenquelle.
Das Einmischen der Daten erfolgt durch den Modul PdfMerge

Syntax:

Data=<Datentyp>:<Dateiname>

<Datentyp>= leer  (CSV wird angenommen)

            CSV
            XML
            ADOBE.XFDF
            TYP

TYP: weitere Datentypen (z.B. SQL), die über die DataAccess-Schnittstelle abgewickelt werden.

<Dateiname>=datei.typ

            X:\datei.typ

            Datei.xml;//xpath

Falls es sich bei der Datendatei (CSV, XML) um eine Multisteuerdatei handelt, muss MultiData=1 gesetzt werden.

Beispiel:
Data=ADOBE.XFDF:Input.xfdf

Get/
Set

DataFileMemoryAddresses

String

Speicheradresse+Länge der Datendatei bei Speicherübergabe

Get/
Set

DataFileType

String

Datentyp für Datenquelle per Speicherübergabe

Get/
Set

DataXmlPath

String

Eingaberequest, z.B. „XML:data.xml;//root/...“ für Datenquelle per Speicherübergabe

Get/
Set

DataXslFilename

String

Name der Xsl-Transformationsdatei (für Transformation von Adobe-xfdf Formulardatenexport)

Get/
Set

DocumentUsedBookmarks

(ab CIB pdf toolbox 1.4.105)

String

Ausgabe der in einem Dokument verwendeten Textmarken.
Zu jeder Textmarke werden die Seiten angegeben, die sie beinhaltet. Dabei kann es sich um Einzelseiten und/oder einen oder mehrere Seitenbereiche handeln.

Syntax:
<DocumentUsedBookmarks> ::= <Textmarke> | <Textmarke> “;” <DocumentUsedBookmarks>

<Textmarke> ::= „{“ <Text> „;“ <Seitenliste> „}“

<Seitenliste> ::= <Seiten> | <Seiten> „,“ <Seitenliste>

<Seiten> ::= <Zahl> | <Zahl> „-„ <Zahl>

Beispiel:
DocumentUsedBookmarks={AUSF1;1-5};{AUSF3;4,6-7}

Get

EmbeddedFileOutputFormat

String

„None“: Die Streams der eingebetteten Dateien werden nicht extrahiert (Default).

„FormatEmbedded“: Die Streams der eingebetteten Dateien werden in das Metafile geschrieben.

„FormatFile“: die eingebetteten Dateien werden in das aktuelle Arbeitsverzeichnis extrahiert.

Set

EmbeddedFilesExtract

 

String

Ein JSON-Array von JSON-Objekten, die definieren, welche Dateien

exportiert werden. Ein JSON-Objekt sieht wie folgt aus:

- Datei: Dateiname wie im pdf angegeben

- OutputFilename: Wo die Datei gespeichert werden soll.

Set

EnablePatternsShadings

(ab CIB pdf toolbox 1.14.0)

String

Die Property steuert, ob PDF-Shadings und PDF-Patterns mit gerendert werden oder nicht.

1     PDF-Shadings und PDF-Patterns werden mit gerendert (Default)

0     PDF-Shadings und PDF-Patterns werden nicht mit gerendert.

Erforderlich: CIB renderer

Set

ExtractEmbeddedFile

(ab CIB pdf toolbox 1.8.0)

String

Über Belegung dieser Property kann gesteuert werden, dass die CIB pdf toolbox während eines Join-Laufs eine eingebettete Datei extrahiert.

Mögliche Eingaben:
- Dateiname, wie er im PDF hinterlegt ist.
- Nummer der Datei im PDF (z.B. „1“ bedeutet: Die erste Datei, die im PDF hinterlegt ist)

- „zugferd“: Die ZUGFeRD-XML-Datei wird extrahiert.
(ab CIB pdf toolbox 1.9.0)

Der Name, unter dem die eingebettete Datei herausgeschrieben wird, wird über die Property OutputFilename übergeben.

Set

ExtractEmbeddedFileInfo

String

„1“ = Die Informationen der eingebetteten Dateien werden in das Metafile geschrieben (Name, Dateigröße, Datum der Erstellung und letzten Änderung) (Default).

„0“ = Es werden keine Informationen zu eingebetteten Dateien in das Metafile geschrieben.

Set

ExtractXmpMetadata

String

Ermöglicht das entpacken von XMP-Metadaten aus einer PDF-Datei.

Die Property hat JSON Syntax.

Beispiel:

{

„1“: „<filenameforfirstpage>“, // extrahiert xmp von Seite 1
“2“: „<filenameforSecondpage>“,
“Global“: „<globalXMP>“

}

„<Zahl>“ Entpackt die XMP-Metadaten einer spezifischen Seite

„Global“ entpackt die globalen XMP-Metadaten des PDF-Dokuments (aus dem Catalog Dictionary)

„AllPages“ entpackt alle Seiten-XMP-Metadaten

 

FieldCaptions.
<utf8prefix>FieldCaptions.
(ab CIB pdf toolbox 1.4.82)

String

dynamische Property, Beschriftung eines Formularfelds (z.B. FieldCaptions.Radio123)

Der Wert der Property ist

bei Pushbuttons: Eine durch „;“ getrennte Liste der Pushbuttonlabels.  als Ansi-String oder als Utf8-String. (es kann mehrere Pushbuttons mit gleichem Namen geben, auch mit unterschiedlichen Labels)

bei Radiobuttons und Checkboxen: Eine durch „;“ getrennte Liste, die den Stil für jeden Button der Gruppe angibt. Die Reihenfolge ist die gleiche wie bei FieldStates (außer „Off“). Mögliche Stile sind:

„n“ = Quadrat (square)

„u“ = Raute (diamond)

„4“ = Haken (check)

„8“ = Kreuz (cross)

„H“ = Stern (star)

„l“ = Kreis (bullet)
Der Button ist genau dann kreisförmig wenn die Caption das bullet ist. Ansonsten ist der Button quadratisch.

Get

FieldDimensions.

String

dynamische Property, Koordinaten eines Formularfelds (z.B. FieldDimensions.Feld123)
Format: „page, (x1,x2,y1,y2)“

Get

FieldFlags.

String

Dynamische Property, Eigenschaften eines Formularfelds (z.B. FieldFlags.Feld123)

Der Inhalt ist eine durch „;“ getrennte Liste der Eigenschaften, die für das Feld „Feld123“ gesetzt sind. Folgende Eigenschaften sind möglich:

ReadOnly         Schreibgeschützt

Required          Erforderlich

NoExport         Beim Exportieren des Formulars dieses Feld    ignorieren

Multiline          mehrere Zeilen (nur bei Textfeldern)

Password         geschützte Eingabe (*****) (nur bei Textfeldern)

NoToggleToOff            Auswahl kann nicht auf leer gesetzt werden (Radiobutton)

Radio     redundant, siehe FieldType.<name>

Pushbutton      redundant, siehe FieldType.<name>

Combo  redundant, siehe FieldType.<name>

Edit       benutzerdefinierte Eingabe erlaubt (nur bei Comboboxen)

Sort       Auswahl sortieren (List- und Comboboxen)

FileSelect          Feld ist Auswahl für Dateiname

MultiSelect       Mehrfachselektion (nur bei Listbox)

DoNotSpellCheck         keine Rechtschreibprüfung

DoNotScroll     kein horizontales Scrolling (limitiert Textlänge)

Comb    Text in Kästchen

RadiosInUnison            Buttons mit demselben Exportwert synchron an- und abschalten

CommitOnSelChange   ausgewählten Wert sofort einsetzen (nicht erst beim Verlassen des Feldes)

RichText Feld enthält „rich text“ (kein rtf, sondern Text mit ein paar html-tags wie <b>,<i>)

Get

FieldFont.

String

dynamische Property, Schriftart und -größe des Formularfeld-Textes

Get

FieldNames

String

Liste der Namen der Formularfelder im Dokument, durch „;“ getrennt

Get

FieldOptions.

String

dynamische Property, Optionen eines Formularfelds (z.B. FieldValue.Feld123)
Bei List- und Comboboxen die Texteinträge durch „;“ getrennt

Get

FieldOrder.

String

dynamische Property, Laufende Nummer des Formularfelds (unsortiert)

Get

FieldStates.

String

dynamische Property, Ausprägungen eines Formularfelds (z.B. FieldValue.Checkbox123)

Get

FieldType.

String

dynamische Property, Typ eines Formularfelds (z.B. FieldType.Textfeld123)

Get

FieldValue.

String

dynamische Property, zum Setzen oder Auslesen von Formularfeld-Inhalten (z.B. FieldValue.Textfeld123)

Durch Setzen dieser Property an den Modul PdfMerge können Inhalte von Formularfeldern übergeben und in das PDF eingemischt werden. (z.B. FieldValue.Textfeld123=Test)
(ab Version 1.4.84)

Get/Set

FillTextOutput

(ab CIB pdf toolbox 1.27.0. )

String

Diese Optionen wirken sich nur aus, wenn die Ausgabe Format-Option folgendermasen gesetzt ist: OutputFormat=FormatText (für die Ausgabe von reinem Text), oder OutputFormat=FormatHocr (für die Ausgabe von HOCR-Text).

Wenn die Option FillTextOutput auf 0 gesetzt ist:

            Der extrahierte Text wird nur in die     Ausgabedatei ausgegeben. Wenn             der Ausgabedateiname nicht   innerhalb der Option   OutputFilename gesetzt ist, sollte          ein Fehler erscheinen.

Wenn die Option FillTextOutput auf 1 gesetzt ist:

            Der extrahierte Text wird in die            Ausgabedatei ausgegeben und             zusätzlich in die Ausgabeeigenschaft   TextOutput in Utf8-Kodierung             kopiert.

Hinweis:

Wenn FillTextOutput auf 1 gesetzt ist und OutputFilename nicht gesetzt ist, wird der extrahierte Text nur in der Property TextOutput gespeichert.

Set

FontsEmbedded

(ab CIB pdf toolbox 1.10.0)

String

Wird dieser Wert gesetzt, so werden alle im PDF-Dokument verwendeten Fonts in das PDF Ausgabe-Dokument eingebettet.

Mögliche Werte:

„0“       kein Einbetten (default)

„1“       Fonts werden einbettet.

Hinweis:
Im Falle von PDF/A-Konvertierung wird FontsEmbedded automatisch aktiviert.

Set

FontSubstitution

(ab CIB pdf toolbox 1.10.0)

String

Die Property gilt wenn FontsEmbedded=1 oder PdfVersion=PDF/Axx.

Alle im System nicht verfügbaren Fonts müssen ersetzt werden. Über diese Property kann gesteuert werden, welche Fonts für die Ersetzung verwendet werden.

Syntax:
FontSubstitution ::= <replacement-pairs> “;” <defaultfont>
<replacement-pairs> ::= <pair> | <pair> “;” <replacement-pairs>
<pair> ::= “{” <fontname> “;” <replacementfontname> “}”

Im Detail:

  • Im Ziel-System vorhandene Fonts werden ohne Ersetzung eingebettet.
  • Im Ziel-System nicht vorhandene Fonts werden ersetzt. Befindet sich der Font in Liste der Property FontSubstitution?
    • Ja:
      Der dort angegebene Ersatzfont wird eingebettet.
    • Nein:
      Der Default-Ersatzfont wird eingebettet.

Beispiel:
FontSubstitution={Helvetica;Arial};
{Zapf Dingbats; Wingdings};Arial

Hinweise:

  • Die CIB pdf toolbox macht eine FontSubstitution nur, wenn der andere Font kompatibel ist.
    D.h. ein symbolic Font(z.B. Wingdings) wird nicht durch einen nonsymbolic(z.B. Times New Roman) ersetzt oder umgekehrt, ein CID wird nicht durch einen Nicht-CID Font ersetzt oder umgekehrt.
  • Im Fall einer nicht durchgeführten, aber per Property gesetzten, Fontsubstitution wird mit Rückgabewert 352 beendet.
  • Durch fontspezifische Eigenschaften z.B. Buchstabenbreite, kann es im Fall einer Fonsubstitution zu Veränderungen im Layout kommen. Dieses ist vom Benutzer auf Korrektheit zu prüfen.

Set

FontWorkSpace

String

Pfad zum Verzeichnis, in dem die Fonts gespeichert sind, die beim Rendern des PDFs in Bildformat verwendet werden sollen.
Es wird sowohl von Interner- also auch von der Pango Rendering-Engine verwendet (siehe auch Property RenderingEngine).

Set

FormfieldNamePrefix

String

Präfix für alle Formularfelder eines Dokuments, bzw. eine durch „;“ getrennte Liste von Präfixen für die am Join beteiligten Dokumente.

Set

GeneratedDocumentCount

(ab Version 1.4.83)

String

Liefert die Anzahl der erzeugten Ausgabedokumente.

Im Normalfall wird „1“ zurückgeliefert, außer bei MultiOutput=1, wenn mehrere Ausgabe-PDFs erstellt werden.

Im Fehlerfall, d.h. Abbruch und gar keine Ausgabe, wird „0“ zurückgegeben.

Get

GeneratedPageCount

(ab Version 1.8.1)

String

Liefert die Anzahl der ausgegebenen Seiten.

Beim Druck werden die erzeugten Kopien mitgezählt. Bei Ausgabe einer Datei ist die Anzahl identisch zu der aus PageCount.

Im Fehlerfall, d.h. Abbruch und gar keine Ausgabe, wird „0“ zurückgegeben.

Get

GetFieldInfo

String

Über diese Property kann die Abfrage der Formularfelder ermöglicht werden.

Mögliche Werte:

„1“       Die Formularfelder können
            abgefragt werden

„0“
„“         Keine Abfrage möglich (default)

Get/
Set

GetPageInfo

String

Über diese Property kann eine Versorgung der GET-Property „PageInfo.<seite>“ veranlasst werden.

Mögliche Werte:

„1“       Die Property „PageInfo.<seite>“
            wird belegt.

„0“
„“         Keine Belegung (default)

Get/
Set

ImageInfo

 

Abrufen einer Beschreibung über Bilder in einer PDF-Datei in JSON Format.

Get

ImagePdfCreation

String

Mögliche Werte:

„0“ oder leer: Property hat keinen Effekt.

„1“ CIB pdf toolbox verwendet CIB renderer um Inhalt von PDF Seiten als Grafik zu erzeugen.

Set

ImagePdfCreationPreserveText

String

Tritt der PdfAFallback Fall ein (siehe Kapitel 5.1.4.1.), können mit Setzen dieser Property Textinhalte aus der Eingabedatei über HOCR Export gesichert und in die Ausgabedatei übernommen werden.

Mögliche Werte:

„0“: Property hat keinen Effekt.

„1“: Textinhalte der Eingabedatei werden in die Ausgabedatei übernommen

Set

IndDCAntiAliasing

String

Wird nicht mehr verwendet

“2” – Einschalten x2 anti-aliasing Funktionalität für interne Rendering-Engine

“4” – Einschalten x4 anti-aliasing Functionalität für interne Rendering-Engine (siehe Proprety RenderingEngine);

Default: “0” oder leer (Es wird kein anti-aliasing durchgeführt)

Set

HiddenPages
(ab CIB pdf toolbox 1.8.0)

String

CIB-interne Property, die derzeit nur vom CIB image unterstützt wird.

Über diese Property gibt ein CIB-Viewer an, welche Seiten bei der Anzeige durch einen CIB viewer ausgeblendet werden sollen. Diese Information wird mit CIB-mitteln im PDF gespeichert.
(Analog zum Ausblenden von Powerpoint-Folien in Powerpoint).

Set

IgnoreTemporaryFontFailure

(ab CIB pdf toolbox 1.8.0)

String

Über diese Property kann die Reaktion auf Fehler bei der temporären Installation von Schriften aus dem PDF gesteuert werden.

Mögliche Werte:

1         Fehler werden ignoriert und die Verarbeitung fortgesetzt

0         Fehler werden mit einem Rückgabewert, z.B. 350, quittiert und die Verarbeitung beendet. (default)

Set/
Get

IncludeInvisibleText
(ab CIB pdf toolbox 1.5.114)

String

Diese Property steuert, ob unsichtbarer PDF-Text (Rendering Mode = 3) von der CIB pdf toolbox ausgegeben wird oder nicht.

Mögliche Werte:

„1“  Unsichtbarer PDFdf-wird bei bestimmten Toolbox-Aufrufen genauso ausgegeben wie sichtbarer Pdf-Text.

„0“  Unsichtbarer Pdf-Text wird bei diesen Toolbox-Aufrufen nicht ausgegeben.
(= default)

Diese Property ist nur bei folgenden Toolbox-Aufrufen wirksam:

a)   Bei der Toolbox-Textsuche mit PdfSearchText=“…“.

b)   Bei der Ausgabe des Pdf-Files in den OutputFormaten „FormatText“ oder „FormatCsv“.

c)    Bei der Ausgabe des Pdf-Files im OutputFormat „FormatXfdf“, wenn die Property „RegionTemplate“ nicht leer ist.

d)    Bei der Metafile-Ausgabe für CIB webview (OutputFormat ist „FormatWebview“).

Set

InputFilename

String

Eingabedatei bzw. eine durch „;“ getrennte Liste von Eingabedateien bzw. Paare {x};y von Seitenangabe(n)/Eingabedatei bzw. leere Seite(n) EMPTY[:Breite(mm), Höhe(mm)].

InputFilename=

{Odd};Dokument1.pdf;EMPTY:210,297;

{5,4,1-3};Dokument2.pdf;EMPTY heißt, dass alle ungeraden Seiten von Dokument1.pdf, eine leere Seite der Breite 210 mm und der Höhe 297mm, die Seiten 5, 4, 1, 2 und 3 von Dokument2.pdf und eine leere Seite mit der Breite und Höhe der aktuell letzten Seite (Seite 3 von Dokument2.pdf) in genau dieser Reihenfolge aneinandergefügt werden.

 

Syntax:

InputFilename ::= <Eingabedatei> [“;“ <Eingabedatei>]...

Eingabedatei ::= [<Seitenangaben> „;“] (<Filename> | <Speicherblöcke> | <Leerseite> | <Speicherblock-Delimiter>)

Seitenangaben ::= „{“ <Seitenangabe> [“,“ <Seitenangabe>]... „}“

Seitenangabe ::= „All“ |“Even“ | „Odd“ | „First“ | „Last“ | <nummer> | (<startnummer> „-„ <endnummer>)

Leerseite ::= „EMPTY“ [“:“ <Breite_in_mm> „,“ <Höhe_in_mm>]

Speicherblöcke ::= <Speicherblock> [<Speicherblock-Delimiter> <Speicherblock>]...

Speicherblock ::= <Adresse> <Speicherblock-Delimiter> <Länge>

 

Ein <Speicherblock-Delimiter> ist ein einzelnes Zeichen ungleich „;“, das möglichst nicht in einem Filenamen vorkommt, z.B. „#“, „?“.

Adresse und Länge sind Dezimalzahlen

Get/
Set

InputMemoryAddress

String

Paare xxx?yyy von Speicheradresse/Länge

Zu beachten:
Der Delimiter ist eine Muss-Angabe und die Adresse ist dezimal einzugeben.

Get/
Set

InsertEmptyPageInDuplex

(ab CIB pdf toolbox 1.4.83)

String

„0“ = Keine DuplexLeerSeiten beim Druck einfügen(default)

„1“ = Beim Duplexdruck von PDF-Dokumenten mit der CIB pdf toolbox werden bei ungerader Seitenanzahl zwischen den zusammengefügten PDF-Dokumenten automatisch Leerseiten eingesteuert. Die Identifizierung dieser Trennstellen erfolgt durch Auswertung der hinterlegten Markierungen. Diese Markierungen, werden über die Property JoinHistory gesetzt.

(weitere Details, siehe Property JoinHistory)

Get/
Set

InsertEmptyPageBetweenRtfBookmarks

 (ab CIB pdf toolbox 1.4.83)

String

“0” = Keine DuplexLeerSeiten beim Druck einfügen(default)

„1“ = Beim Duplexdruck von PDF-Dokumenten wird zwischen den Stellen, wo sich eine RtfBookmark ändert, bzw. wo ein  Join gemacht wurde (siehe Property JoinHistory), eine Leerseite beim Druck eingefügt, wenn der darauffolgende Inhalt auf eine Rückseite gedruckt werden würde.

Get/
Set

JoinHistory

(ab CIB pdf toolbox 1.4.83)

String

„0“ = Die CIB pdf toolbox setzt keine Markierung an den Seitenübergängen, an denen dieses aus mehreren Einzeldokumenten zusammengefügt wird.

„1“ = Die Toolbox markiert diese Position(en).

 

Hinweis:

Damit ist es möglich, einen späteren Ausdruck im Duplexmodus mit automatisch eingefügter Leerseite vorzunehmen.

Siehe auch Property InsertEmptyPageInDuplex und

InsertEmptyPageBetweenRtfBookmarks

 

Der Defaultwert ist 1

Get/
Set

StartPage
(ab CIB pdf toolbox 1.8.0)

String

In dieser Property kann die Seitennummer hinterlegt werden, bei der das PDF bei der Anzeige geöffnet wird.

Die Nummer wird im PDF hinterlegt und bei der Anzeige durch den Adobe Reader, CIB jView oder CIB image ausgewertet.

Set

OpenSize

(ab CIB pdf toolbox 1.13.5)

String

Gibt die Zoomstufe im Fenster des PDF-Anzeigeprogramms beim Öffnen der PDF-Datei vor.

„Standard“       Standardeinstellung des PDF-
                        Anzeigeprogramms verwen-
                        den (Default)

„Fit“                 An Fensterhöhe anpassen

„FitH“               An Fensterbreite anpassen

Kommt nur zur Anwendung, wenn auch StartPage gesetzt ist.

Set

PartialDocumentAlignment

(ab CIB pdf toolbox 1.4.84)

String

„0“ = Kein Einfügen von Leerseiten

„1“ = Jedes Teildokument wird durch Leerseiten auf eine gerade Seitenzahl erweitert.

Nur sinnvoll bei PDF-Join ohne OutputFormat=Printer.

Set

PdfPrintFontCleanupInterval

(ab CIB pdf toolbox 1.4.95)

String

Angabe eines Zeitintervalls, nach dem die CIB pdf toolbox Fonts aus der Fontliste entfernt. Damit kann verhindert werden, dass Fonts zu früh aus der Fontliste gelöscht werden.

Einheit: Stunden
Default: 0

Bei jedem Aufruf prüft die CIB pdf toolbox die Fontliste. Diese enthält die noch nicht abgeräumten Fonts mit einem Zeitstempel. Alle Fonts älter als das FontCleanupInterval werden aus der Liste entfernt.

Bei wiederholten Aufrufen von CibPdfMerge/ CibPdfJoin/CibPdfPrint im gleichen Prozeß wird die Fontliste nur geprüft, wenn seit dem letzten Aufruf mindestens 1 Stunde vergangen ist.

Set

LicenseKey

String

Lizenzschlüssel

Set

LicenseCompany

String

Lizenznehmer

Set

MaxResolution

(ab CIB pdf toolbox 1.5.111)

String

Durch Angabe einer maximalen Auflösung (in dpi) kann die Größe von Grafiken im Metafile begrenzt werden.

Das wirkt sich war auf die Qualität (etwa beim Zoomen) aus, die Metafiles werden jedoch kleiner.

Default: Original-Auflösung wird beibehalten.

Im Acrobat gibt es dieses Feature bei „Erweitert/Pdf-Optimierung“ und heißt „Bikubische Neuberechnung auf ... dpi für Bilder ab ... dpi“. Die CIB pdf toolbox führt die Neuberechnung (Resampling) nur beim Speichern als Metafile durch, nicht beim Speichern als PDF. Außerdem wird ein einfacherer (nicht bikubischer) Resampling-Algorithmus verwendet.

Set

ResolutionThreshold

(ab CIB pdf toolbox 1.5.111)

String

Alle Bitmaps im Dokument, die eine höhere Auflösung haben als ResolutionThreshold (in dpi), werden auf MaxResolution herunterskaliert und dann ausgegeben. Das ist unabhängig von der Auflösung des Ausgabemediums (Bitmap, Drucker, Metafile).

Setzt man nur MaxResolution, dann werden alle Bilder mit höherer Auflösung auf MaxResolution herunterskaliert.

Set

MemoryOutputCallback

String

Adresse der Callback-Funktion für Ausgabedokument per Speicherübergabe.
Schnittstellenbeschreibung siehe Kapitel „MemoryOutputCallback”

Get/
Set

MemoryOutputUserdata

String

Userdata der Callback-Funktion für Ausgabedokument per Speicherübergabe

Get/
Set

MetaFilename

String

Name des Metafiles, welches mit den CIB viewern angezeigt wird.

Set

MultiData

String

„1“ = Datendatei ist eine Multisteuerdatei

Get/
Set

MultiOutput

String

„1“ = Pro Datensatz eigene Ausgabedatei erzeugen

Get/
Set

NeedAppearances

String

„1“ = Acrobat baut die Formularfelder beim Öffnen neu auf.

Get/
Set

OutputFilename

String

Dateiname des Ausgabe-Dokuments

Get/
Set

OutputFormat

String

(keins): Dokument wird über OutputFilename gespeichert.


“FormatPdf“: Ausgabe ist ein PDF (default)


“FormatView“: Es wird ein temporäres Metafile für CIB view erzeugt.


“FormatJavaView“: Es wird ein temporäres Metafile für CIB jView erzeugt.


“FormatEmbeddedFile“: Es werden nur die im Dokument eingebetteten Dateien gelesen und gespeichert. Der Rest des Dokuments wird nicht bearbeitet.
Das Ausgabeformat wird mittels der Property “EmbeddedFileOutputFormat“ festgelegt.


“FormatPrinter“: Dokument wird auf den Drucker ausgegeben.


„FormatText“: Das Ausgabeformat ist plain Text (als Unicode).
(ab CIB pdf toolbox 1.4.81)

Auch für dieses Ausgabeformat wird ab CIB pdf toolbox 1.4.87 das Memory-Interface unterstützt.

Wenn der Inhalt von Formularfeldern in den Textoutput übernommen werden soll, muss die Property FlattenFormfields=1 gesetzt werden.


„FormatXfdf“:
Der Modul PdfJoin exportiert die Formulardaten aus dem PDF als Xfdf-Datei. Diese Datei beinhaltet die Feldnamen und –inhalte im XML-Format.

(ab CIB pdf toolbox 1.4.90)


„FormatXfdfWithAnnots“: Der Modul PdfJoin exportiert aus dem PDF als Xfdf-Datei die Formulardaten und zusätzlich Kommentare und deren grafisches Erscheinungsbild.

Hier werden folgende Typen unterstützt:
text | caret | freetext | fileattachment | highlight | ink | line | circle |square | polygon | polyline | sound | squiggly | stamp | strikeout | underline

(ab CIB pdf toolbox 1.4.105)

„FormatSearchablePdf“: In Grafiken enthaltener Text wird alsText extrahiert.

(ab CIB pdf toolbox Version 1.6.116)

„FormatBarcodeXml“: Die aus dem PDF über die Property „BarcodeInfo“ ausgelesenen Barcodeinformationen werden im XML-Format ausgegeben.

(ab CIB pdf toolbox 1.8.0)

„FormatBarcodeCsv“: Die aus dem PDF über die Property „BarcodeInfo“ ausgelesenen Barcodeinformationen werden im CSV-Format ausgegeben.

(ab CIB pdf toolbox 1.8.0)

„FormatInfo“: Es werden globale Dokumenten-Eigenschaften durch den PDF-Join aus dem PDF ausgelesen.

(Ab CIB pdf toolbox 1.6.116f)

“FormatPrinterCups”:  Druckansteuerung über CUPS. Nur für Linux/Unix verfügbar. (siehe Kapitel 14.1.2 “Druck über CUPS” )

 

„FormatTiff“: Erzeugt Grafikdatei im Tiff-Format.
(ab CIB pdf toolbox Version 1.4.102)

„FormatPng“: Erzeugt Grafikdatei im Png-Format.
(ab CIB pdf toolbox Version 1.4.102)


„FormatJpeg“: Erzeugt Grafikdatei im Jpeg-Format.
(ab CIB pdf toolbox Version 1.4.102)

„FormatWebview“: Ausgabeformat für die Anzeige in CIB doXiview.
(ab CIB pdf toolbox Version 1.4.102)

 

FormatWebP“: Erzeugt Grafikdatei im WebP-Format (verwendet verlustbehaftete und nicht verlustbehaftete Kompression).
(ab CIB pdf toolbox Version 1.9.0)

„FormatJpegXR“: Erzeugt Grafikdatei im JPEG extended range Format.
(ab CIB pdf toolbox Version 1.9.0)

„FormatBmp“: Erzeugt Grafikdatei im BMP-Format.
(ab CIB pdf toolbox Version 1.8.5a)

„FormatBmpLz4“: Erzeugt Grafikdatei im BMP-Format, wobei Daten nach lz4 Standard komprimiert sind.
(ab CIB pdf toolbox Version 1.8.5a)

„FormatImage“: Bei einem Rendering-Vorgang werden mehrere Ausgabe-Grafikformate erzeugt. Dabei muss es sich um Raster-Grafikformate handeln.
(ab Version 1.14.0)

„FormatSvg“: Ausgabe einer Grafikdatei im SVG-Format (Scalable Vector Graphics=skalierbare Vektorgrafik).
(ab Version 1.14.0)

”FormatAnalyse”: Der Prüf-Prozess zum Verifizieren der Signatur wird immer komplett durchgeführt und die SignedDocument.xxx-Properties für die Signatur gesetzt. Dadurch kann verfolgt werden, welche Verarbeitungsschritte erfolgreich waren und welche nicht.
(Ab CIB pdf toolbox Version 1.6.115)

 

“FormatExtractImages”: Bei Angabe dieses Ausgabeformats werden alle Image-XObjects, die sich in den Eingabe-PDFs befinden, exportiert. Die Ausgabe erfolgt im TIFF-Format oder (bei bestimmten Pdf Bildobjekten) ins JPEG-Format unter der bei OutputFilename angegebenen Dateibezeichnung.
(ab CIB pdf toolbox Version 1.4.113)

„FormatCsv“: Aus dem PDF extrahierter Text wird als CSV-Datei ausgegeben.
(ab CIB pdf toolbox Version 1.4.95)

Get/
Set

OutputRtfBookmarkNames

 

Wenn die Option OutputRtfBookmarkNames=1 und PageSelection-Option unter Verwendung von CIB-Bookmark gesetzt ist, dann enthalten die Namen der Ausgabebilder Lesezeichennamen:

Das Format ist OutputRtfBookmarkNames=0:

<OutputFilename> - <Seitenzahl>

Beispiel: out-000001.png

Das Format ist OutputRtfBookmarkNames=1(erweiterte Ausgabe):

<OutputFilename> - <RtfBookmarkName> - <CopyNumber> - <PageNumber> - <PageNumber>….

Beispiel: out-AUF1-0000-0000-00001.png

 

PageCount

String

Anzahl Seiten im Dokument, Dezimalzahl als String.

Get

PageFieldNames.<seite>

String

Gibt die Formularfelder jeder Seite zurück.

Z.B. PageFieldNames.0 enthält die Formularfelder der ersten Seite

Get

PageInfo.<seite>

String

Dynamische Property, in der Informationen zu einer Seite zurückgegeben werden (Breite, Höhe und Rotation).
(Property GetPageInfo muss gesetzt sein)

Z.B. PageInfo.1 enthält die Informationen zur zweiten Seite

Get

PdfDocPropertyEncoding
(ab CIB pdf toolbox 1.4.78)

String

“” = kein Encoding(default)

“Base64” = Base64 Encoding

Get/
Set

PdfDocProperties
(ab CIB pdf toolbox 1.4.78)

String

Liefert die Namen, durch „;“ getrennt, aller benutzerdefinierten Dokumenteigenschaften.

Get

PdfDocProperties
(ab CIB pdf toolbox 1.4.78)

String

Setzen neuer oder zu ändernder benutzerdefinierter Dokumenteigenschaften.

Set

PdfDocProperty.<name>

(ab CIB pdf toolbox 1.4.78)

String

dynamische Property, Lesen oder Setzen des Wertes der benutzerdefinierten Dokumenteigenschaft, deren Namen über die Property PdfDocProperties geliefert werden. Das Encoding des Wertes erfolgt entsprechend der Property „PdfDocPropertyEncoding“.

Achtung: neue Dokumenteigenschaften müssen über die Property „PdfDocProperties“ vorher bekannt gemacht werden. Bei Angabe von unbekannten Dokumenteigenschaften liefert die CIB pdf toolbox den Rückgabewert 99.

Get/
Set

PdfLinearized

String

Steuerung, ob das Ausgabe-PDF für die schnelle Anzeige im Web optimiert wird.

Mögliche Werte:
“0“       keine Optimierung (default)
“1“       Optimierung wird durchgeführt

Get/
Set

PdfSearchIgnoreCase

String

Steuerung, ob bei der Suche im PDF die Groß-/Kleinschreibung berücksichtigt wird.

Mögliche Werte:
“0“       nicht case-sensitive (default)
“1“       case-sensitive Suche

Set

PdfSearchFont

String

Setzen eines bestimmten Fonts. Bei einer nachfolgenden Textsuche werden als Ergebnis nur Texte geliefert, die mit diesem Font im Dokument vorkommen.

Beispiel:

PdfSearchFont=“CourierNewPS-ItalicMT“ bedeutet, dass im Dokument nur Textpassagen gesucht werden, die diesen Font verwenden.

 

Achtung:

Die Fontbezeichnung muss mit der vom Acrobat-Reader aus den Dokument-Eigenschaften übereinstimmen.

Set

PdfSearchResult

String

Liefert die Fundstellen der Zeichenkette im Dokument. Jede Fundstelle wird durch eine Folge von Rechtecken beschrieben. Diese bezeichnen die genaue Position der gesuchten Zeichenkette im Seitentext.

Eine Rechteck wird angegeben durch:

<page>,<left>,<top>,<right>,<bottom>.

Erstreckt sich eine Fundstelle über mehrere Zeilen, wird eine Folge von Rechtecken durch Semikolon voneinander getrennt zurückgeliefert.


Beispiele:
PdfSearchResult=

„1,500,100,600,110;1,50,111,100,121“ heißt, dass sich der Suchtext auf Seite 1 über zwei Zeilen erstreckt. Einmal von (500,100) bis (600,110) und von (50,111) bis (100,121).

Kommt der Suchtext mehrmals im Dokument vor, so werden die verschiedenen Fundstellen (gekennzeichnet durch {}) aneinandergereiht.

„{1,500,100,600,110;1,50,111,100,121};{2,500,100,600,110;2,50,111,100,121}“ heißt dass der Suchtext auch noch auf Seite 2 von (500,100) bis (600,110) und von (50,111) bis (100,121) vorkommt.

Eine Fundstelle kann sich auch über mehrere Seiten erstrecken.

Ein Ergebnis wie

„1,500,750,600,760;2,50,50,100,60“ bedeutet, dass die Fundstelle auf Seite 1 von (500,750) bis (600,760) geht und sich auf Seite 2 von (50,50) bis (100,60) fortsetzt.

Get

PdfSearchResultContext

(ab CIB pdf toolbox 1.4.80)

 

String*

Liefert die Fundstellen der Zeichenkette im Dokument mit ihrem Kontext.
Zeichenkette wie in PdfSearchText und Kontext wie in PdfSearchContext beschrieben.

Das Suchergebnis ist folgendermaßen aufgebaut:

={<Fundstelle1>};{<Fundstelle2>};...

<Fundstelle> = {<Kontext>};<Rechteck1>;<Rechteck2>;...

<Rechteck> = siehe PdfSearchResult

<Kontext> = <Vor-Kontext> <Suchkette> <Nach-Kontext>

Falls nicht genügend Zeichen im Dokument vorhanden sind um den definierten Vor- oder Nachkontext zu belegen (z.B. am Anfang oder Ende eines Dokuments), wird mit Leerzeichen aufgefüllt.

Beispiel:

Suchkette=Kinder, Vorkontext=3, Nachkontext=5 liefert das Ergebnis:
{{ei Kindern bis};2,214.967,246.836,243.862,256.086}{{en Kinder unfa};2,202.192,336.836,231.087,346.086}

 

Die Property PdfSearchResult wird weiterhin zusätzlich belegt.

Get

PdfSearchText

String

Setzen der gesuchten Zeichenkette im Dokument. Hierbei kann es sich auch um eine längere Textpassage handeln.

Set

PdfSearchContext

(ab CIB pdf toolbox 1.4.80)

String

Setzen eines Kontextes für die gesuchte Zeichenkette, der als Suchergebnis mitausgegeben wird.

=“m;n“
m=
Anzahl Zeichen vor

n= Anzahl Zeichen nach der gesuchten           Zeichenkette

Wird nur eine Zahl angegeben, so werden die Zeichen nach der gesuchten Zeichenkette verwendet.

Set

PdfVersionInfo

(ab CIB pdf toolbox 1.18.0)

String

Diese Property liefert die PDF-Version und Spezial-Version des Dokuments zurück.
Die Ausgabe erfolgt im JSON Format.

Beispiel:

{“Version“:“1.4“, „SpecialVersions“:[“PDF/A“, „PDF/X“]}

Das PDF-Dokument hat die PDF-Version 1.4  und es erfüllt zusätzlich die Spezifikationen PDF/X und PDF/A.

Get

FirstPage

LastPage
(ab CIB pdf toolbox 1.4.81)

String

Einschränken der Textsuche (PdfSearchText) bzw. der Textausgabe (OutputFormat=FormatText) auf einen Seitenbereich.

Beispiel:

FirstPage=1  LastPage=3

Es wird nur Seite 1 bis 3 bearbeitet.

Wenn die Angabe LastPage fehlt, geht der Bereich bis zum Ende des Dokuments.

Set

PdfSecurityMethod

String

Mögliche Werte sind:

„“ = keine Methode

„Standard“ = Methode ist „adobe standard security“

Get

PngCompressLevel

(ab CIB pdf toolbox 1.4.105)

String

Steuerung des Maßes der Kompression der Grafik beim Speichern.
Die Schreibgeschwindigkeit kann durch Verringern der Kompression (und damit Erhöhen der Dateigröße) erhöht werden. So wird bei Verdoppeln der Dateigröße die Datei fünfmal so schnell geschrieben.

Mögliche Werte:

1          Standard-Wert für PNG Kompression

0          Keine Kompression

9          Maximale Kompression

2          Default

Set

PrefixDelimiter”

(ab CIB pdf toolbox 1.3.62)

String

Der Parameter—prefix-delimiter definiert ein Trennzeichen zwischen Alias und Variablennamen und schaltet den Präfix-Mechanismus fest ein.

Durch Setzen des Parameters—prefix-delimiter werden beim Einsatz von Multiknoten die Variablen eindeutig gehalten.
(identisch zu CIB merge—prefix-delimiter)

Default=leer

Set

PrintCentered

String

Ist die Property auf „1“ gesetzt, wird die Seite(in x- und y-Richtung) bezüglich des bedruckbaren Bereichs(nicht des Papiers) zentriert. (default)

Ist diese Property auf „0“ gesetzt, findet kein Zentrieren statt.

Get/
Set

PrintScaling

String

Skalieroptionen der Seiten auf den Druckbereich:

PrintScaleNone – Die PDF-Seite wird nicht auf Druckerbegrenzungen skaliert. D.h. Texte und Grafiken werden abgeschnitten, wenn sie außerhalb der Druckseitengröße liegen. Die linke obere Ecke der PDF-Seite entspricht der linken oberen Ecke des bedruckbaren Bereichs - nicht des Papiers. Falls die PDF-Seite nicht im gleichen Seitenformat wie das Papier ist, bezieht sich die linke obere Ecke der PDF-Seite auf die gedrehte Druckseite.(default)

PrintScaleDown – größeres Papier wird auf den bedruckbaren Bereich skaliert.

PrintScaleFit – Das Papier wird passend auf den bedruckbaren Bereich skaliert, d.h. größere werden verkleinert und kleinere vergrößert

Get/
Set

Progress

String

Returning a JSON-description of current progress of the current running JOB. This property can be retrieved from a different thread as the thread in which the current execute is running.

The JSON description consists of the Keys

“AmountSteps” and “CurrentStep”. AmountSteps defines, how many internal bigger steps are done and the CurrentStep defines how many Steps were already done.

Get

RegenerateXMP

(ab CIB pdf toolbox Version 1.6.116f)

String

„0“: Es wird nichts getan. (default)

„1“: Aktualisiert XMP-Daten im PDF aus den DocInfo Werten.

Set

RenderingEngine

(ab CIB pdf toolbox Version 1.7.0)

 




(ab CIB pdf toolbox Version 1.14.0)

String

“Internal” – Interne Rendering-Engine wird verwendet (Default für Unix-Systeme)

“WinGDI” – Windows Rendering-Engine wird verwendet (Default für Windows-Systeme)

“CIBRenderer” – Pango-Cairo Rendering-Engine wird verwendet;
(Default für Unix- und Windows-Systeme)

Set

TraceFilename

String

Gibt an, wohin die Logmeldungen der Toolbox ausgegeben werden

Get/
Set

RegionTemplate

String

Über die Property wird der Name der XFDF-Datei übergeben, die die Bereiche (Rechtecke) enthält, aus denen Text extrahiert werden soll. Der extrahierte Text wird in eine XFDF- bzw. CSV-Datei geschrieben.

Voraussetzung:
OutputFormat=FormatXfdfWithAnnots

RegionTemplate=<name>.xfdf

Set

RegionThreshold

String

Die Property gibt den prozentualen Anteil an, ab dem ein Zeichen zur Region gehört. Wenn also ein Zeichen zu einem geringeren Prozentsatz als hier angegeben  in die Region hineinragt, zählt es nicht zur Region.

RegionThreshold=<integer>

Voraussetzung:
OutputFormat=FormatXfdfWithAnnots
und Verwendung von RegionTemplate

Set

SvgImageBounds

(ab CIB pdf toolbox Version 1.20.0)

String

Über diese Property kann die maximale Auflösung (und damit die Größe der Ausgabe des Rendering-Prozesses) für SVG-Grafiken begrenzt werden.

Möglicher Wert:

Ein JSON-String mit folgenden Parametern/Werten:

{

„MinImageHeight“: 50,
// Die minimale Höhe der Eingabe-Grafik, bei der dieser Algorithmus wirksam wird,
default: 50

„MinImageWidth“: 50,
// Die minimale Breite der Eingabe-Grafik, bei der dieser Algorithmus wirksam wird,
default: 50

„ResolutionThresholdJpeg“: 180,
// Schwellenwert, bei dessen Überschreiten die Größe der JPEG-Grafik heruntergerechnet wird. Heruntergerechnet wird auf den Wert aus „MaxResolutionJpeg“ (hier: 150 DPI).

„ResolutionThresholdPng“: 180,
// Schwellenwert, bei dessen Überschreiten die Größe der PNG-Grafik heruntergerechnet wird. Heruntergerechnet wird auf den Wert aus „MaxResolutionPng“ (hier: 150 DPI).

„MaxResolutionJpeg“: 150,
// Bei Überschreiten des Schwellen-wertes aus ResolutionThresholdJpeg wird die JPEG-Grafik auf 150 DPI heruntergerechnet.

„MaxResolutionPng“:  150,
// Bei Überschreiten des Schwellen-wertes aus ResolutionThresholdPng wird die PNG-Grafik auf 150 DPI heruntergerechnet.

}

Set

TempPath

(ab CIB pdf toolbox Version 1.20.0)

String

Der in dieser Property angegebene Pfad wird verwendet für die Ablage von
- temporären Font-Dateien
- die Liste der installierten Fonts
- temporären Postscript-Seiten (bei Prostscript-Druck)

Andere Pfade wie z.B. zum Verzeichnis der Ausgabedatei, werden von dieser Property nicht beeinflusst.

Der Pfad muss auf ein gültiges Verzeichnis verweisen. Es kann sich um einen relativen oder absoluten Pfad handeln.

Set

GraphicLayerInfo

(ab CIB pdf toolbox Version 1.25.0)

String

In dieser Property wird zurückgemeldet, welche Grafiken beim Renderingvorgang im PDF gefunden werden.
Die Ausgabe erfolgt im JSON Format

Erforderlich sind:

OutputFormat=FormatText | FormatWebview | FormatJavaView

RenderingEngine=CIBRenderer.

Die Ausgabe hängt vom Inhalt der Property PageSelection ab:

PageSelection leer: GraphicLayerInfo enthält die Information für das ganze PDF

PageSelection gesetzt: GraphicLayerInfo  enthält die Information für jede ausgewählte Seite

Beispiele:

PageSelection leer:

{"stats": {"inlineImageCount":9,"externalImageCount":3,"externalImageIdents":[10,15,20]}}

PageSelection gesetzt auf “1-2”:

{"stats": [ {"inlineImageCount":0,"externalImageCount":1,"externalImageIdents":[10]},  {"inlineImageCount":3,"externalImageCount":2,"externalImageIdents":[15,20]}]}

Get

TextLayerInfo

(ab CIB pdf toolbox Version 1.18.0)

String

In dieser Property wird zurückgemeldet, welche Textgruppen beim Renderingvorgang im PDF gefunden werden.
Die Ausgabe erfolgt im JSON Format

Folgende Textgruppen sind möglich:

any_visible – Jeder sichtbare Text

simple_invisible – Unsichtbarer Text, nicht speziell gekennzeichnet

cibocr_invisible – Unsichtbarer Text, von der CIB pdf toolbox als CIB_HOCR gekennzeichnet

others_invisible – Unsichtbarer Text, von anderen PDF-Prozessoren gekennzeichnet

Beispiel:

{”groups”: [”any_visible”, “simple_invisible”, “cibocr_invisible”, “others_invisible”]}

 

Hinweise:

OutputFormat muss auf
FormatText, FormatWebview oder FormatJavaView bzw. muss bei Grafikformaten RenderingEngine=CIBRenderer gesetzt sein.

Die PageSelection Property beeinflusst das Ausgabeformat der Property TextLayerInfo.

Keine PageSelection gesetzt: TextLayerInfo enthält die zusammengesetzte Information über das ganze Dokument.

PageSelection ist gesetzt:
TextLayerInfo enthält die Information einzeln pro ausgewählte Seite.

Beispiele:

Keine PageSelection gesetzt:
{”groups”: [”any_visible”, “simple_invisible”, “cibocr_invisible”, “others_invisible”]}

PageSelection ist gesetzt auf 1-3,
Seite 1 enthält nur sichtbaren Text,
Seite 2 enthält sichtbaren und simple invisible Text
Seite 3 enthält gar keinen Text:
{“groups“: [[“any_visible“],[“any_visible“,“simple_invisible“],[]]}

Get

TextMark

(ab CIB pdf toolbox Version 1.37.0)

String

Die Eigenschaft funktioniert nur für das Ausgabeformat FormatText und arbeitet in Verbindung mit TextSelectionFilter.

Wenn der Wert von TextSelectionFilter gesetzt ist als: TextSelectionFilter={"groups":["marked_invisible"]}

Dann gibt die CIB pdf toolbox nur unsichtbaren Text aus, der mit einem speziellen Tag markiert ist, der durch die Eigenschaft TextMark angegeben wird.

Für andere Gruppen im TextSelection-Filter wird die Eigenschaft TextMark ignoriert.

Die CIB pdf toolbox extrahiert Text, der im pdf-Inhaltsstrom mit einem speziellen Tag markiert ist: CIB_HOCRerty. TextMark wird ignoriert.

Beispiel:

CibRsh.exe OutputFormat=FormatText TextSelectionFilter=

{"Gruppen":["marked_invisible"]}

TextMark=CIB_HOCR -fj Eingabe.pdf Ausgabe.txt

Get

TextOutput

(ab CIB pdf toolbox Version 1.37.0)

String

Wenn wir FillTextOutput=1 setzen, dann wird die Ausgabeeigenschaft TextOutput mit Text in Utf8-Kodierung gefüllt.

Get

TextSelectionFilter

(ab CIB pdf toolbox Version 1.18.0)

String

Über TextSelectionFilter kann die Property IncludeInvisibleText konfiguriert warden, d.h. sie steuert im Detail, welche Arten von sichtbaren und unsichtbaren Texten ausgegeben werden.
Sie hat JSON Format und wenn sie gesetzt ist, übersteuert sie die Angaben aus IncludeInvisibleText.

Als Auswahl können zusätzlich zu den einfachen Textgruppen any_visiblesimple_invisible, cibocr_invisibleothers_invisible (Details siehe Property TextLayerInfo) auch zusammengesetzte Textgruppen verwendet werden:

any_invisible – jeder unsichtbare Text (simple_invisible + cibocr_invisible + others_invisible)

any – jeder Text (any_visible + any_invisible)

Hinweise:

Die Property beeinflusst nur Ausgabe in Text- und Metafiles.

Sie ist nur gültig für OutputFormat
FormatText, FormatWebview, FormatJavaView, FormatView.

Beispiele:

TextSelectionFilter={“groups“:[“cibocr_invisible“]}
Nur Texte der Textgruppe cibocr_invisible werden ausgegeben (falls vorhanden)

TextSelectionFilter={”groups”:[”any_visible”, “any_invisible”]}
Alle Textgruppen werden ausgegeben

Set

UseColorProfileForCMYK

(ab CIB pdf toolbox Version 1.4.98)

String

Mögliche Werte für Umwandlung in RGB:

„1“       „US Web coated“ und „sRGB“ Profile werden benutzt (default)

„0“       einfache Variante

Set

UseJbig2Compression

(ab CIB pdf toolbox Version 1.10.0)

String

Achtung: Nur für Grafik-Overlay

Über diese Property kann die für Overlay-Grafiken standardmäßig aktivierte Jbig2-Kompression deaktiviert werden.

0          Jbig2-Kompression wird deaktiviert, Der Standard ZLIB Kompression wird angewendet. 

1          Jbig2-Kompression wird aktiviert (default)

Hinweis:
Jbig2-Kompression wird nicht angewendet bei
1) JPG Grafiken
2) Grafiken mit mehr als 2 Farben.

Set

UseWinGDI

String

Wird nicht mehr verwendet,
abgelöst von RenderingEngine=WinGDI

„1“ = Windows Rendering-Engine wird verwendet (Default für Windows-Systeme)

„0“ = Interne Rendering-Engine wird verwendet (Default für Unix-Systeme)

Set

UseSvgExternalImages

(ab CIB pdf toolbox Version 1.17.0)

 

Ermöglicht es, alle internen Bilder, die zu SVG Grafiken zusammengefasst sind, separat vom SVG Inhalt als externe Resourcen zu speichern (JPEG oder PNG).

Mögliche Werte:

0          deaktiviert

1          aktiviert

 

ViewCallback

String

Adresse des Callbacks für Rückmeldung nach jeder Seite (interne Prop.)

Get/
Set

WorkSpace

 

 

 

 

 

 

 

 

 

 

 

 

(ab CIB pdf toolbox Version 1.4.81):

 

 

 

 

(ab CIB pdf toolbox Version 1.4.84):

String

Definitiert das Arbeitsverzeichnis für alle Dateinamensangaben, ausgenommen Ausgabedateien.

Der Pfad wird als nullterminierte Zeichen­kette angegeben. Der Pfad kann absolut angegeben werden oder relativ zum Arbeits­verzeichnis des aufrufenden Prozesses.

Alle Dateiangaben (ohne absoluten Pfad) in Properties werden relativ zu diesem Work­space betrachtet.

Es kann auch eine Liste von Arbeits­ver­zeich­nissen angegeben werden. Die ein­zelnen Angaben werden durch Semi­kolon getrennt. Für jede verwendete Datei wird eine Suche gestartet und die erste Fund­stelle genutzt.

Ab dieser Version gilt die Property WorkSpace nicht mehr für Ausgabedateien.

Get/
Set

PageXmpMetadata

(ab CIB pdf toolbox Version 1.14.0):

String

Diese Property dient dem Hinzufügen bzw. Überschreiben von Seiten-bezogenen Metadaten in einem PDF. Sie werden auf der jeweiligen Seite über “/Metadata“ referenziert.

Syntax:
Die Syntax für die Seitenangabe ist identisch zu der von Property „InputFilename”, nur “Leerseite” wird hier nicht benötigt.

Für jede Seite bzw. Seitenbereich des Ausgabe-PDFs können Metadaten (UTF-8 kodiert) spezifiziert werden. Die Metadaten können als XML-Datei oder Speicherblock übergeben werden.

Wenn eine Seite bereits Metadaten enthält, so werden diese durch die neuen Daten ersetzt. Sind nur einige Seiten eines Dokuments angesprochen, bleiben Metadaten der restlichen Seiten unverändert erhalten.

Beispiele:

PageXmpMetadata=
“{First};metadata1.xml;{2};metadata2.xml“

PageXmpMetadata=
“{All};#;276534#1000“

PageXmpMetadata=
“{3};#;276534#1000;{2};metadata2.xml“

Set

XMPMetadataExtension

String

Erlaubt die Angabe eines oder mehrerer XMP-Snippets vom Typ rdf:Description. Diese werden beim Konvertierungsvorgang (CibPdfSave()) der Metainfo des entstehenden PDFs hinzugefügt.

Bitte beachten Sie dabei die offizielle XMP Spezifikation von Adobe.

Set

XfdfIgnorePageRotation

(ab CIB pdf toolbox Version 1.17.0):

String

0 (default): Koordinaten werden im Seitenkoordinatensystem interpretiert und abhängig von Seitenausrichtung und cropping. (0,0) ist der Ursprung der MediaBox der Seite.

1: Koordinaten werden relativ zur sichtbaren Seite interpretiert. (0,0) ist die Koordinate Links Unten auf der sichtbaren seite (Nach zuschneiden und drehen)

Set

XfdfFlipPositionY

ab CIB pdf toolbox Version 1.24.0):

String

Über diese Property wird der Ausgangspunkt / Anker der Koordinaten von links unten nach links oben geändert.

0 (default): Ausgangspunkt / Anker der Koordinaten  links unten

1: Ausgangspunkt / Anker der Koordinaten  links oben

Set


13.1. XMP Metadaten

Allgemein
Beispiel
Beispiel für XMP Metadaten

Allgemein

Bei Extensible Metadata Platform (XMP) handelt es sich um ein Format zum Einbetten von RDF in die Binärdaten. Damit sollen Metadaten in allen relevanten Adobe Systems -Applikationen nach einem einheitlichen Schema integriert werden.

Der Inhalt der Property XmpMetadataExtension ist beschrieben durch folgende Detailanforderungen, die sich insbesondere aus den Angaben in den XMP- und PDF/A-Spezifikationen ergeben:

  • Das Attribut rdf:about muss auf „“ gesetzt werden.
  • Der Inhalt der Description-Elemente und die notwendige Angabe eines eigenen Namespaces sind im Rahmen der XMP-Vorgaben beliebig.
  • Der String muss UTF-8 encoded sein.
  • Es können entprechend der XMP-Spezifikation nur Name-Wert-Paare (Properties) im XMP gespeichert werden.
  • Ein Wert kann selbst kein XML sein. Strukturierte Werte (Unterschriftenbereich=Left,Top,Right,Bottom) und Listen von Werten (Author=Thiel, Eisenschmid, Wissenbach) werden von XMP aber unterstützt. Die verfügbaren atomaren Datentypen sind in der XMP-Spezifikation beschrieben.
  • Für PDF/A-Konformität: Wenn der angegebene Namespace nicht einer der in der XMP Specification vordefinierten „XMP-Schemas“ ist, dann muss die Beschreibung des zugehörigen Schemas ebenfalls mitgegeben werden. Siehe hierzu die Angaben in der PDF/A-Spezifikation bezüglich Metadata. Das ist nicht erforderlich für normales PDF.
  • Eine Überprüfung des Inhalts der XmpMetadataExtension auf Konformität findet nicht statt.
  • Der Aufrufer sorgt dafür, daß der Propertywert ein XMP konformer String in UTF-8 Encoding ist. Das Voranstellen des XMP-Headers sowie des XMP Abschlusses ist nicht erlaubt.
  • Im CIB documentServer muss diese Property als CDATA-Section oder mit entsprechenden Entities encoded werden, und natürlich auch UTF-8 enthalten.


Beispiel

XmpMetadataExtension=”
<rdf:Description rdf:about=\”\” xmlns:xmpTGp=\”http://ns.adobe.com/xap/1.0/t/pg/\”>
<xmpTGp:NPages>25<xmpTGp:NPages>
</rdf:Description>

Beispiel für XMP Metadaten

Die grüne Sektion beschreibt den Teil, der als Schema für den roten individuellen Inhalt (=eigene Property) gilt:

<rdf:Description rdf:about=”” xmlns:pdfaProperty=”http://www.aim.org/pdfa/ns/property/”>

<pdfaProperty:name>BackgroundFilename</pdfaProperty:name>

<pdfaProperty:valueType>Text</pdfaProperty:valueType>

<pdfaProperty:category>internal</pdfaProperty:category>

</rdf:Description>

 

<rdf:Description rdf:about=”” xmlns:pdfaSchema=”http://www.aim.org/pdfa/ns/schema/”>

<pdfaSchema:namespaceURI>

http://www.cib.de/schemas/xmp/pdfprops/1.0/

</pdfaSchema:namespaceURI>

<pdfaSchema:prefix>cibpdf</pdfaSchema:prefix>

<pdfaSchema:property>

<rdf:Seq>

<rdf:li>BackgroundFilename</rdf:li>

</rdf:Seq>

</pdfaSchema:property>

</rdf:Description>

 

<rdf:Description rdf:about=”” xmlns:cibpdf=”http://www.cib.de/schemas/xmp/pdfprops/1.0/”>

<cibpdf:DefaultBackgroundFilename>wert1</cibpdf:DefaultBackgroundFilename>              

</rdf:Description>


14. Interne Module im Detail

Die CIB pdf toolbox ist funktional in einzelne Module untergliedert, um dem Anwender ein Höchstmaß an Nutzen für seinen jeweiligen Einsatzzweck zu liefern. Jede spezielle Ausgabeform hat spezifische Eigenschaften, die durch zusätzliche Properties für diese jeweiligen Ausgabenarten unterstützt werden.

14.1. CIB pdf/print

Allgemein
Spezielle Optionen für die Druckausgabe
Druck über CUPS
Praxisorientierte Beispiele für die Anforderung des direkten Drucks

Allgemein

CIB pdf/print wird als PDF-Druckinterpreter eingesetzt. Es wurde dazu entwickelt, den kompletten Textinhalt der PDF-Datei passend zu einem vorgegebenen Drucker zu rendern und auszudrucken. Das Ergebnis soll so nahe wie möglich vom Aussehen her dem vergleichbaren Standardwerkzeug (Acrobat Reader) des Formatherstellers (Adobe) kommen. Unterstützt wird die PDF-Spezifikation der Version 1.8 (Acrobat Reader 8). 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

Propertybezeichnung

Typ

Funktionalität

DocumentUsedFonts

(ab CIB pdf toolbox 1.6.115)

String

Ausgabe der in einem Dokument verwendeten Schriftarten {Name;Größe;Attribute}.

Beispiel:
{Frutiger VR;6-48;normal,bold,italic,bold italic;};{Courier New;6-48;normal,bold,italic,bold italic;}

DocumentReplacedFonts

(ab CIB pdf toolbox 1.6.115)

String

Ausgabe der bei der Dokumenten-Verarbeitung erfolgten Font-Ersetzungen.

Falls ein Font auf dem System nicht vorhanden ist, wird er von der CIB pdf tollbox  durch einen möglichst „ähnlichen“ installierten Font ersetzt. Die durchgeführten Font-Ersetzungen werden in dieser Property dokumentiert in der Form:

<Font-Ersetzungen> ::= <Font-Ersetzung> | <Font-Ersetzung> „;“<Font-Ersetzung>

<Font-Ersetzung> ::= „{“ <Alter Font> „;“<Neuer Font> „}“

<Alter Font> ::= <Fontname>

<Neuer Font> ::= <Fontname>

<Fontname> ::= <Text>

Jede Font-Ersetzung wird nur einmal ausgegeben.

Beispiel:
DocumentReplacedFonts = {FrutigerVR;Times};{HelveticaNeueLT Com 65Md;Times};{Arial;Times}

DocumentUsedOriginFonts

(ab CIB pdf toolbox 1.6.115)

String

Ausgabe der in einem Dokument verwendeten Original-Schriftarten {Name;Größe;Attribute}.

Beispiel:
{Frutiger VR;6-48;normal,bold,italic,bolditalic;};{Arial;10,12;normal,bold italic;}

DuplexPrint2

Char*

DuplexPrint2 erweitert die Ausprägung für den Duplexdruck und wird anstatt der Property DuplexPrint verwendet.

„DuplexDefault“:
Es wird unter Windows der im Druckertreiber gesetzte Standardwert verwendet. Unter Linux/Unix wird der Wert aus der per Property gesetzten PPD-Datei verwendet. Ist keine PPD-Datei vorhanden, wird DuplexPrintLong verwendet.

„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.

PageSelection

Char*

Geben Sie hier die gewünschte Seitenselektion an.
zum Beispiel:

Die Angabe „1-3“ entspricht Seite 1 bis 3,
durch die Angabe „1;3“ erhält man Seite 1 und 3. (Semikolon als Trennzeichen !)

Angabe von Ausfertigungen:
<Textmarkenname>;<Textmarkenname2>
oder
<Textmarkenname>,<Anzahl zusätzl. Kopien>
Hinweis:
Semikolon trennt die Namen der Ausfertigungen. Mit Komma werden die Anzahl zusätzlicher Kopien angefügt.

(ab CIB pdf toolbox 1.4.83):
Anstelle eines Seitenbereichs, kann man auch den Namen einer Ausfertigung (Bookmark) eines zum Pdf konvertiertem RTF Dokuments angeben.

PaperBin

Char*

Gezielte Ansteuerung eines bestimmten Drucker-Schachtes.

Möglich sind:
- Druckerspezifische Schachtnummern,
            z.B. 258
            (ab CIB pdf toolbox 1.4.109)
- 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“

PaperBinReset

Char*

Erste Seite wird auf einem anderen Schacht gedruckt. Mögliche Werte:

=„Bookmarks“ (Default)
Die erste Seite jeder Kopie, Ausfertigung und jedes Teil-Dokuments wird auf den Erste-Seite-Schacht gedruckt.

=“PartialDocuments“
Die erste Seite jeder Kopie und jedes Teil-Dokuments wird auf den Erste-Seite-Schacht gedruckt.

=“Copies“
Die erste Seite jeder Kopie wird auf den Erste-Seite-Schacht gedruckt.

=“None“
Die erste Seite des Druckauftrages wird auf den Erste-Seite-Schacht gedruckt

ReceiverCopyMap

(ab CIB pdftoolbox 1.4.106)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ab CIB pdftoolbox 1.14.0)

Char*

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.

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}

Spezialfall:  Einer der beiden Schächte fehlt:

ReceiverCopyMap=
{kunde;AUSF1;briefkopf;}   oder

{kunde;AUSF1;briefkopf}   oder

{kunde;AUSF1;;briefkopf}

haben das gleiche Ergebnis:
Nach der 1. Seite wird keine Duplexleerseite eingefügt.

Aber:

ReceiverCopyMap=
{kunde;AUSF1;;}   oder

{kunde;AUSF1;}

erzeugen einen Fehler - 304.

PaperTypeMap

(ab CIB pdftoolbox 1.4.106)

Char*

In einer Tabelle können den verwendeten Papiertypen die Druckerschächte zugeordnet werden, in denen dieses Papier liegt.
Schachtnamen bzw. Schachtnummern sind Drucker spezifisch.
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.

Syntax:
<PaperTypeMap> ::= <Eintrag> | <Eintrag> „;“ <PaperTypeMap>

<Eintrag> ::= <Papiertyp> „,“ <Schacht>

<Papiertyp> ::= <Text>

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

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

PaperTypes

(ab CIB pdftoolbox 1.4.106)

Char*

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

PrintBracketMode

(ab CIB pdftoolbox 1.4.106)

Char*

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.

PrintBracket

(ab CIB pdftoolbox 1.4.106)

Long

Bei Starten einer neuen Druckklammer (PrintBracketMode=Open) erstellt die CIB pdf toolbox (oder der CIB format) 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 unter
Windows: das Spoolerhandle
Linux: eine Liste von Dateipfaden

PrintMode

(ab CIB pdftoolbox 1.13.0)

Char*

Wirkt nur unter Windows

Bei RenderingEngine=CIBRenderer wird für den Rendering-Vorgang des Drucks (OutputFormat=FormatPrinter) der CIBRenderer verwendet und erzeugt als Zwischenschritt temporäre Files, die dann an den Drucker übergeben werden.

 

Mögliche Werte:

Auto (oder leer): Es wird Postscript benutzt, wenn der Druckertreiber postscriptfähig ist, ansonsten GDI.

Postscript: Es wird Postscript benutzt, wenn der Druckertreiber postscriptfähig ist.
(Sonst Fehler 304)

GDI: Druck über GDI

PCL: Wird noch nicht unterstützt
(Ausgabe Fehler 304)

Die Properties PrintBrackets, PageSelection, PrintCopies2, DuplexPrint2, SortedPrint2, PaperBins, InsertEmptyPageBetweenBookmarks, PaperBinReset können benutzt werden.

 

Bei RenderingEngine ungleich CIBRenderer wird nur GDI unterstützt.
D.h. ist PrintMode leer oder Auto oder GDI, wird GDI benutzt. Ansonsten gibt es Fehler 304

ParentHwnd2

Char*

Es wird das Windowhandle der Anwendung übergeben, bezüglich der der Druckdialog zentriert werden soll.

(default: Windowhandle des Desktops)

PrintCopies2

Char*

Anzahl der Kopien vom Original, die beim Ausdruck erzeugt werden.
Angabe ist die Zahl der zusätzlichen Exemplare, default ist 0.

SortedPrint2

(ab CIB pdf toolbox 1.6.117)

Char*

Ausgabe von sortierten oder unsortierten Kopien auf den Drucker. Diese Property ist nur sinnvoll, falls PrintCopies2 > 0 ist. Diese Eigenschaft wird sowohl für Simplexdruck als auch für Duplexdruck unterstützt.

Mögliche Werte:

„1“: Die Seiten des Pdf Dokuments werden sortiert gedruckt (default).

„0“: Die Seiten des Pdf Dokuments werden unsortiert gedruckt. In diesem Fall wird die Property RequestedPages nicht unterstützt.

Außerdem gilt:
 Falls FastPages=1 oder PaperTypeMap nicht leer ist oder ReceiverCopyMap nicht leer ist oder PaperBin einen Strichpunkt (für 2 Schächte) enthält, so wird eine Warnung rausgeschrieben und der Wert von SortedPrint2 auf „1“ geändert.

Beispiel:
Für PageSelection=“3;6;8“, PrintCopies2=1 und Duplex-Print wird für SortedPrint2=1 ausgegeben: „3,6,8,leer,3,6,8,leer“.

Für SortedPrint2=0 wird ausgegeben:
„3,6,3,6,8,leer,8,leer“. Das Ganze im Simplex-Print ergibt „3,6,8,3,6,8“ (für SortedPrint2=1) und „3,3,6,6,8,8“ (SortedPrint2=0).

PrinterChanged2

Char*

„1“: Drucker wurde geändert.

„0“: Der Drucker wurde nicht geändert.

PrinterLocalisation

Char*

Definition der Druckertypen die mit PrinterAvailable geholt werden sollen

„PrinterDefault“:
Liefert den Standarddrucker.

„PrinterLocal“:
Liefert die lokalen Drucker.

„PrinterNetwork“:
“PrinterRemote“:
“PrinterShared“:
Liefert die über das netzwerk angeschlossenen Drucker.

„PrinterCUPS“:
Liefert die über das Common Unix Printing System angeschlossenen Drucker.

PrintedPageCount2

Char*

Liefert die Anzahl der gedruckten Seiten zurück.

PrinterName

Char*

Windows:
Unter Windows wird der gewünschte Druckername verlangt. Die Angabe kann mit Domain oder Serverbezeichnung erfolgen.

PrintToFile2

Char*

„0“: der Ausdruck geht auf den gewünschten Drucker

„1“: der Druck wird in eine Datei umgeleitet.

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

PrintDialogDisableToFile2

Char*

„1“: Im Druckdialog wird die Checkbox „Ausgabe In Datei umleiten“ nicht angezeigt.

„0“: Die Checkbox wird angezeigt (Default).

PrintDialogDisableSelection2

Char*

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

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

PrintDlgHwnd2

Char*

Windowhandle des verwendeten Druckdialoges

PrinterPortName

Char*

Auf diesem Port ausdrucken (Nur Get)

DefaultPrinter

Char*

Rückgabe des Standarddruckers.

PaperBinAvailable

Char*

Rückgabe der verfügbaren Druckerschächte des Druckers aus Property PrinterName bzw. des Standarddruckers, falls PrinterName leer ist.

DeviceCapability.DuplexAvailable

Char*

Gibt zurück, ob der Drucker aus Property PrinterName (oder der Standarddrucker, falls PrinterName leer ist) fähig ist, Duplex oder zweiseitig zu drucken.

Mögliche Rückgabewerte:
0        Er kann nicht Duplexs drucken
1        Er kann Duplex drucken

PrintCommentList

(ab CIB pdf toolbox 1.9.2)

Char*

Gibt an, ob die sichtbaren Kommentare beim Drucken aufgelistet werden sollen (entspricht dem „Kommentare zusammenfassen“ bei Adobe Professionell).

Mögliche Werte:

„0“: Es wird keine Kommentarliste gedruckt. (default)

„1“: Alle sichtbaren Kommentare des PDF Dokuments erhalten eine fortlaufende Nummer und sie werden in Zusatzseiten aufgelistet.

PrintCommentListTypes

(ab CIB pdf toolbox 1.9.2)

Char*

Die Property gibt an, welche speziellen Kommentartypen aufgelistet werden sollen.
Sie ist nur wirksam, falls PrintCommentList=“1“.

Mögliche Werte:

„“: (leerer String – default) Alle sichtbaren Kommentare werden aufgelistet.

Non-empty-string: Eine durch Strichpunkt getrennte Liste der Kommentartypen, die aufgelistet werden sollen.
Z.B. „Circle;Freetext;Text“.

PrintCommentListEmpty

(ab CIB pdf toolbox 1.9.2)

Char*

Gibt an, ob nur die Kommentare mit nicht-leerem Text aufgelistet werden.

Mögliche Werte:

„1“: Alle passenden Kommentare werden aufgelistet, egal ob sie Text enthalten oder nicht. (Default)

„0“: Es werden nur die Kommentare aufgelistet, die wirklich Text enthalten.


Druck über CUPS

Die CIB pdf toolbox unterstützt unter Linux die Druckansteuerung über CUPS (Common Unix Printing System).

CUPS besteht aus einer Client-Server-Architektur, das heißt, das Programm ist aufgeteilt in einen Druck-Client, der die Druckaufträge schickt, und einen Druck-Server, der das Drucken auf dem Rechner, an dem der Drucker angeschlossen ist, erledigt.

Das Standardformat für CUPS ist Postscript (PS), daher generieren die CIB Module unter Linux immer PS, das an die CUPS Schnittstelle übergeben wird. In der Regel wird CUPS das PS an den angeschlossenen Drucker weitergeben. Je nach Konfiguration und Fähigkeit des Druckers kann es aber auch sein, dass CUPS noch eine Konvertierung (z.B. nach PCL) durchführt.

Voraussetzung für die Ansteuerung eines CUPS Druckes unter Linux:

  • Vorliegen einer CUPS Version größer 1.2
  • Installation von PDFTOPS 3.0 vom poppler-utils package 0.5.4
  • gtk 2.10 (für den Druckdialog)


Praxisorientierte Beispiele für die Anforderung des direkten Drucks

Der direkte Druck kann über die CIB Runshell oder die direkte Dll Funktionalität ausgeführt werden.

Einfacher Runshell-Aufruf für den Druck einer PDF-Datei:

cibrsh.exe –fp Test.pdf 

Um über die Dll zu drucken, sind folgende Schritte als Basis erforderlich:

Über die Methode SetProperty(), den Wert „InputFilename“ mit dem zu druckenden Dokument belegen.

Über die Methode SetProperty(), den Wert „OutputFormat“ mit „FormatPrinter“ belegen.

Die Methode CibPdfJoin() ausführen

Mit diesen Aufrufen wird die angegebene Eingabedatei auf dem Standarddrucker ausgegeben. Genauere Angaben zum Druck können über weitere Properties gemacht werden.

Im Folgenden sollen Beispiele für häufig vorkommende Anwendungsfälle des Duplex-Drucks gegeben werden.
Voraussetzung ist ein Drucker mit Duplex-Eigenschaft. In den Beispielen hat der Drucker einen manuellen („BinManual“) und einen oberen Schacht („BinUpper“).


Druck einfaches Dokument

Gedruckt wird ein einfaches Dokument, in dem sich keine Textmarken befinden.

Anwendungsfall

Properties

Ergebnis

Komplettdruck des Dokuments

Keine erforderlich

Das komplette Dokument wird einmal ausgedruckt.

Komplettdruck mit Kopien

PrintCopies2=1

Das komplette Dokument wird zweimal gedruckt.

Ausdruck von Teilen des Dokuments

PageSelection=1-3;7

InsertEmptyPageBetweenRtfBookmarks=“1“

Gedruckt werden nur die Seiten 1, 2, 3 und 7.
Durch Setzen der Property „InsertEmptyPageBetweenRtf-Bookmarks“ wird verhindert, dass die Seite 7 auf die Rückseite von Seite 3 gedruckt wird.

Ausdruck von Teilen des Dokuments mit Kopien

PageSelection=1,1;5,2

InsertEmptyPageBetweenRtfBookmarks=“1“

Gedruckt werden nur die Seite 1 zweimal und Seite 5 dreimal.

Druck auf unterschiedliche Schächte

PaperBin=“BinManual;BinUpper“

Die erste Seite des Dokuments wird auf manuellen Schacht, der Rest auf oberen Schacht gedruckt.

Druck mit Kopien und unterschiedlichen Schächten

Variante 1

PrintCopies2=1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Bookmarks

Die erste Seite jeder Kopie des Formulars wird auf manuellen Schacht, der Rest auf oberen Schacht gedruckt.

 

Variante 2

 

PrintCopies2=1

PaperBin=“BinManual;BinUpper“

PaperBinReset=None

Die erste Seite des Druckauftrags wird auf manuellen Schacht, der Rest auf oberen Schacht gedruckt


Druck eines Dokuments mit Ausfertigungen

Das Dokument enthält die Textmarken AUSF1, AUSF2 und AUSF3. Jede dieser Textmarken steht für einen Textbereich im Dokument. So kann z.B. unter dem Bezeichner AUSF1 ein bestimmter Teil des Dokuments (=Ausfertigung 1) direkt angesprochen und gedruckt werden.

Die Property    InsertEmptyPageBetweenRtfBookmarks=“1“
muss gesetzt werden, damit beim Druck und ungerader Seitenzahl jede Ausfertigung auf einem neuen Blatt beginnt. 

Anwendungsfall

Properties

Ergebnis

Komplettdruck des Dokuments

Keine weiteren Properties erforderlich

Das komplette Dokument wird einmal ausgedruckt. Es werden Leerseiten eingesteuert, damit jede Ausfertigung auf einem neuen Blatt beginnt.

Ausdruck von Teilen des Dokuments

PageSelection=AUSF2

Nur die Ausfertigung 2 wird gedruckt.

Ausdruck von Teilen des Dokuments mit und ohne Kopien

PageSelection=AUSF1,1;AUSF3

Die Ausfertigung 1 wird zweimal und Ausfertigung 3 einmal gedruckt.

Ausdruck auf unterschiedliche Schächte

Variante 1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Bookmarks

Die erste Seite jeder der im Dokument enthaltenen Ausfertigungen wird auf manuellen Schacht, der Rest auf oberen Schacht gedruckt.

 

Variante 2

PaperBin=“BinManual;BinUpper“

PaperBinReset=None

Die erste Seite des Dokuments wird auf manuellen Schacht, der Rest auf oberen Schacht gedruckt

Ausdruck auf unterschiedliche Schächte mit Kopien

PrintCopies2=1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Copies

Das komplette Dokument wird zweimal gedruckt. Dabei geht die erste Seite jeder Kopie auf den manuellen und die restlichen Seiten auf den oberen Schacht.


Druck von Formular-Bündeln (Verkettung einfacher Dokumente)

Verkettung: Durch den CIB pdf/join werden einfache PDF-Dokumente (d.h. sie enthalten keine Textmarken) zu einem einzigen großen PDF-Dokument verkettet. Man spricht auch von einem Formular-Bündel.
Durch das Setzen der Property   JoinHistory=“1“   wird an den Übergängen zwischen den Einzeldokumenten eine Markierung gesetzt, damit an dieser Stelle beim Duplexdruck auf einem neuen Blatt begonnen wird.

Druck: Durch Setzen der Property    InsertEmptyPageInDuplex=“1“  wird das Einsteuern von Leerseiten zwischen den Einzeldokumenten (siehe JoinHistory) veranlasst, damit jedes Teildokument auf einem neuen Blatt beginnt. 

Anwendungsfall

Properties

Ergebnis

Komplettdruck des Formular-Bündels

Keine weiteren Properties erforderlich

Das komplette Formular-Bündel wird einmal ausgedruckt. Es werden Leerseiten so eingesteuert, dass jedes Einzel-Dokument auf einem neuen Blatt beginnt.

Ausdruck von Einzelseiten des Formularbündels ohne und mit Kopien

PageSelection=1;10,2

InsertEmptyPageBetweenRtfBookmarks=“1“

Die Seite 1 des Formularsbündels wird einmal und Seite 10 dreimal gedruckt.

Durch Setzen der Property „InsertEmptyPageBetweenRtf-Bookmarks“ wird verhindert, dass die Seite 10 auf die Rückseite von Seite 1 gedruckt wird.

Ausdruck auf unterschiedliche Schächte

Variante 1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Bookmarks

Die erste Seite jedes Teil-Dokuments wird auf manuellem Schacht, der Rest auf oberem Schacht gedruckt.

 

Variante 2

PaperBin=“BinManual;BinUpper“

PaperBinReset=None

Die erste Seite des Formular-Bündels wird auf manuellem Schacht, der Rest auf oberem Schacht gedruckt.

Ausdruck auf unterschiedliche Schächte mit Kopien

PrintCopies2=1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Copies

Das komplette Formular-Bündel wird zweimal gedruckt. Dabei geht die erste Seite jeder Kopie auf den manuellen und die restlichen Seiten auf den oberen Schacht.


Druck von Formular-Bündeln mit Ausfertigungen

Die Einzeldokumente  enthalten die Textmarken AUSF1, AUSF2 und AUSF3. Diese Textmarken markieren jeweils Textbereiche für Druckausfertigungen in den Einzel-Dokumenten. Der Name einer bestimmten Textmarke kann auch in mehreren Einzel-Dokumenten vorkommen. Dann werden beim Druck dieser Ausfertigung alle so benannten Textbereiche ausgewählt.
Verkettung: Durch den CIB pdf/join werden die einzelnen PDF-Dokumente zu einem einzigen großen PDF-Dokument verkettet (= Formular-Bündel).
Durch das Setzen der Property   JoinHistory=“1“   wird an den Übergängen zwischen den Einzeldokumenten eine Markierung gesetzt, damit an dieser Stelle beim Duplexdruck auf einem neuen Blatt begonnen wird.

Druck: Durch Setzen der Property    InsertEmptyPageInDuplex=“1“  wird das Einsteuern von Leerseiten zwischen den Einzeldokumenten (siehe JoinHistory) veranlasst, damit jedes Teildokument auf einem neuen Blatt beginnt.
Durch Setzen der Property   InsertEmptyPageBetweenRtfBookmarks=“1“    beginnt auch jede Ausfertigung auf einem neuen Blatt. 

Anwendungsfall

Properties

Ergebnis

Komplettdruck des Formular-Bündels

Keine weiteren Properties erforderlich

Das komplette Formular-Bündel wird einmal ausgedruckt. Es werden Leerseiten so eingesteuert, dass jedes Teildokument und jede Ausfertigung auf einem neuen Blatt beginnt.

Ausdruck von Teilen des Formularbündels ohne und mit Kopien

PageSelection=AUSF1;AUSF2,1

Alle Ausfertigungen1 aus dem Formularsbündel werden einmal und die Ausfertigungen2 zweimal gedruckt.

Ausdruck auf unterschiedliche Schächte

Variante 1

PaperBin=“BinManual;BinUpper“

PaperBinReset=Bookmarks

Die erste Seite jedes Teil-Dokuments und jeder Ausfertigung wird auf manuellem Schacht, der Rest auf oberem Schacht gedruckt.

 

Variante 2

PaperBin=“BinManual;BinUpper“

PaperBinReset=PartialDocument

Die erste Seite jedes Teil-Dokuments wird auf manuellem Schacht, der Rest auf oberem Schacht gedruckt.


14.2. CIB pdf/join/split

Dieser Abschnitt gibt eine Einführung in die Funktionalität des PdfJoin der CIB pdf toolbox ab der Version 1.3.60.
Mit der Eigenschaft InputFilename ist zusätzlich zum Aneinanderfügen von ganzen PDF-Dokumenten (wie bisher) auch das Aneinanderfügen bestimmter Seiten von einem oder mehreren PDF-Dokument(en) in Kombination mit leeren Seiten möglich.

Spezielle Optionen für den PDF join
Beispiele für die Seitenauswahl
Spezielle Properties zum Ändern der Dokument-Eigenschaften
Spezielle Properties für die Grafik-Erzeugung
Spezielle Properties für das ZUGFeRD-Datenmodell
Schwärzen Funktionalität

Spezielle Optionen für den PDF join


Bezeichnung Wert Wirkung
InputFilename

=“[{Seitenzahl(en)};]FileName
[;[{Seitenzahl(en)};]FileName; |
EMPTY[:Breite,Höhe];]...“


Werte in eckigen Klammern sind optional.

Aus den in InputFilename angegebenen Dokumenten, Seitenangaben etc. wird ein Ergebnisdokument zusammengestellt.
Es muss mindestens ein PDF-Dokument mit oder ohne Seitenangabe(n) angegeben werden. Zusätzlich zu diesem können sowohl weitere PDF-Dokumente mit oder ohne Seitenangabe(n) als auch leere Seiten mit oder ohne Seitengröße folgen. Die Seitenangaben müssen in geschweiften Klammern stehen.

Seitenzahl(en) Keine Angabe oder “All“ Alle Seiten auswählen
“Odd” Ungerade Seiten auswählen
“Even” Gerade Seiten auswählen
“First” Nur erste Seite auswählen
“Last” Nur letzte Seite auswählen
“NoFirst Alle Seiten außer der ersten auswählen
“NoLast” Alle Seiten außer der letzten auswählen
Zahl Nur Seite Zahl auswählen
Zahl1-Zahl2 Von Seite Zahl1 bis Zahl2 auswählen, wobei Zahl1<Zahl2 sein muss
Zahl1-Zahl2,Zahl3, ...,ZahlN-ZahlM Mehrere Seiten oder Seitenbereiche auswählen (Komma als Trennzeichen)
FileName Pfad zur Datei Die Seiten dieser Datei werden ausgewählt
EMPTY EMPTY Eine leere Seite mit Breite und Höhe  der zuletzt eingefügten Seite einfügen
Breite Zahl (ganzzahlig, x, oder dezimal, x.y, zulässig) Breite der leeren Seite in mm setzen
Höhe Zahl (ganzzahlig, x, oder dezimal, x.y, zulässig) Höhe der leeren Seite in mm setzen
PageRotation
(ab Version 1.4.79)
Seitenzahl(en);Winkel[; Seitenzahl(en);Winkel][;….] Einzelne Seiten können gedreht werden. Mehrere Seitenangaben in unterschiedlichen Winkeln sind möglich. Zu den Prioritäten siehe unten.
Seitenzahl(en) Siehe bei InputFilename. Die Seitenzahlen beziehen sich auf das Ergebnisdokument (nach join/split).
Winkel Möglich sind
90°
180°
270°

Gradzahl für Drehung

Die Drehung erfolgt im Uhrzeigersinn in Vielfachen von 90°.

Beispiel:
PageRotation={All};90;{3};180
PageSelection

Die möglichen Werte sind im Kapitel CIB pdf/print beschrieben.

Achtung:
Alle hier gemachten Seitenangaben beziehen sich auf das vom CIB pdf/join erzeugte Ausgabedokument.

Die Property PageSelection wird bei den folgenden Ausgabeformaten ausgewertet,

OutputFormat=

FormatPrinter
FormatTiff
FormatPng
FormatJpeg
FormatBmp
FormatWebview
FormatSvg
FormatImage
FormatText

PdfVersion

(ab Version 1.6.116b)

Mögliche Werte:

PDF/A-1b

PDF/A-2b

PDF/A-3b

Set-Property

Ein oder mehrere PDFs können in die hier angegebene PDF-Version überführt werden.

Die Property „OutputFormat=FormatPdf“ oder „OutputFormat=FormatSearchablePdf“  muss gesetzt sein.
SplitPages
(ab Version 1.4.86)

=0  (default)

 

=1

Ergebnis ist ein Ausgabedokument

 

Das Ergebnisdokument wird in einseitige Ausgabedokumente aufgesplittet. Die Ausgabedokumente werden durch Anhängen einer fortlaufenden Nummer gekennzeichnet.


Beispiel:

cibrsh  SplitPages=1 -fj Dok1.pdf;Dok2.pdf Ausgabe.pdf

ergibt:
Ausgabe-1.pdf
Ausgabe-2.pdf
Ausgabe-3.pdf

EmbeddedFiles

ab Version 1.8.0)

<EmbeddedFiles> ::= <EmbedFilename> | <EmbedFilename>;<EmbedFilename>

<EmbedFilename> ::= „{“<Seitenangabe>;<EmbedFilename-ohneSeite>“}“|“{“<EmbedFilename-ohneSeite>“}“

<EmbedFilename-ohneSeite> ::= <Relationship>;<EmbedFilename-simple>|<Description>;<EmbedFilename-simple>|<Relationship>;<Description>;<EmbedFilename-simple>|<EmbedFilename-simple>

<Relationship> ::= “RELATIONSHIP=”<name>

<Description> ::= “DESC=”<name>

<EmbedFilename-simple> ::= Dateiname

Set-Property

Über diese Property kann eine Liste von Dateien angegeben werden, die bei der PDF-Generierung an das PDF bzw. an einzelne Seiten des PDFs angehängt werden. Konkret erfolgt ein Eintrag der Datei(en) in das jeweilige Catalog-/Page-Dictionary.

Beispiel:

EmbeddedFiles={1-3;Relationship=Source;Desc=”Description”;file1.pdf};{Relationship=Source;Desc=”Description for another file”;file2.pdf};

Zu beachten:

- “Description” wird nur für bei PDF-Versionen >= 1.6 ausgewertet. Es kann beliebiger Text eingetragen werden.

- “Relationship” wird nur bei PDF/A3-Konvertierung ausgewertet (PDF/A-3a, PDF/A-3b, PDF/A-3u).

Es gibt vordefinierte Bezeichner (Source, Data, Alternative, Supplement, Unspecified), es können aber auch selbst definierte Werte verwendet werden.

- Falls zu einem EmbedFilename eine Seitennummer (oder mehrere) angegeben werden, wird die Datei als Anhang dieser Seite(n) eingefügt. Ansonsten handelt es sich um einen Anhang des kompletten PDF-Dokuments.

- Die Seitenangabe kann sein:
Seitenzahl(en), Bereich oder eine Kombination aus beidem, getrennt durch Kommata.
Beispiel: “1,5-6,10”;

In “EmbedFilename” können zum Maskieren folgende Zeichen verwendet werden:
“\;”  für  “;”
“\\”  für  “\”.

DeleteEmbeddedFiles

ab Version 1.8.0)
<DeleteEmbeddedFiles> ::= All |.
<EmbedFilename> | <Filenumber> | “{” <EmbedFilename> | <Filenumber “}”

Set-Property

Über diese Property kann eine Liste von Dateien angegeben werden, die aus dem Anhang des PDFs entfernt werden sollen. Konkret werden die zugehörigen Einträge aus dem jeweiligen Catalog/Page-Dictionary gelöscht.

Beispiele:

DeleteEmbeddedFiles={test.pdf};{22}

DeleteEmbeddedFiles=test.pdf;13

Hinweise:

- „All“: Es werden alle Attachments gelöscht.

- Die zu löschende Datei kann über ihren Namen oder eine Nummer spezifiziert werden.

Name:
Die Datei mit diesem Namen wird gelöscht. Gibt es mehrere, wird die erste genommen.

- Nummer:
Die Nummer entspricht dem Zähler im Dictionary. Nummer=13 heißt also, die 13. Datei wird gelöscht.

UpdateEmbeddedFiles

ab Version 1.8.0)
Syntax ist identisch wie
EmbeddedFiles

Set-Property

Über diese Property kann die Description der angehängten Dateien geändert werden.

Hinweis:

- Die zu ändernde Datei kann über ihren Namen oder eine Nummer oder beides spezifiziert werden.

Siehe „DeleteEmbeddedFiles“

Beispiel:

UpdateEmbeddedFiles={Desc=Desc;Relationship=Source;file.pdf;2};{Desc=Desc;Relationship=Source;file2.pdf}

ExtractEmbeddedFiles

(ab Version 1.8.0)
Syntax ist identisch wie
DeleteEmbeddedFiles

Set-Property

Über diese Property kann eine angehängte Datei aus dem PDF extrahiert werden.
Die Ausgabe erfolgt in die in der Property „OutputFilename“ spezifizierte Datei.

EmbeddedFilesInfo

(ab Version 1.17.0)

Der Inhalt hat folgenden Aufbau: [{“Relationship“:“Dateiart“,“ID“:IdNr,“Filename“: “Dateiname“,“Size“:Größe,“CompressedSize“: KomprimierteGröße} ]

Dateiart=None | Source | CibEpdfSource | HybridPdfSource | jeder Standardwert für einen AFRelationship key

IdNr=Laufende Nummer der eingebetteten Dateien
(Bei LibreOffice-Hybrid-PDFs ist die Nummer negativ)

Get-Property

Es handelt sich um Get-Property, in der Informationen über in das PDF eingebettete Dateien im JSON-Format zurückgeliefert werden.

Erforderlich ist: OutputFormat=FormatInfo
FilterInfo=EmbeddedFilesInfo
EmbeddedFilesInfoFilter=EmbeddedFiles;Epdf

Beispiele:

Eingebettete Cib Epdf source Datei: [ {”Relationship”:”CibEpdfSource”,”ID”:1,”Filename”: ”Utf8FilenameWithoutBom.pdf”,”Size”:1024,”CompressedSize”:512} ]

2 Eingebettete Cib Standard source Dateien: [ {”Relationship”:”Source”,”ID”:1,”Filename”: ”FirstUtf8FilenameWithoutBom.anyext”,”Size”:1024, ”CompressedSize”:512},{”Relationship”:”Source”,”ID”=2;”Filename”: ”SecondUtf8FilenameWithoutBom2.anyext”,”Size”:2048,”CompressedSize”:1024} ]

Eingebetteter Inhalt eines LibreOffice HybridPdfs: [  {”Relationship”:”HybridPdfSource”,”ID”:-1, “Filename”:”TheSameAsPdfDocName.odt”,”Size”:1024,”CompressedSize”:512} ]

EmbeddedFilesInfoFilter

(ab Version 1.17.0)

EmbeddedFiles
Liefert Informationen über ins PDF eingebettete Source-Dateien beliebigen Typs

Epdf
Liefert Informationen über die ins PDF eingebettete CIB ePDF-Source-Datei

oder Beides

Set-Property

Über diese Property kann der Typ der eingebetteten Datei eingeschränkt werden.

Erforderlich ist:
OutputFormat=FormatInfo und
FilterInfo=EmbeddedFilesInfo

FilterInfo

(ab Version 1.8.0)

 

 

 

  


DocInfoDir

RtfBookmarks

Get-Property

Informationen über die im PDF enthaltenen Dokument-Eigenschften und Textmarken werden in eine XML-Datei geschrieben.

Erforderlich ist:
OutputFormat=FormatInfo und
OutputFilename=<Name>.xml

Die Dokumenteneigen-schaften werden in die XML-Datei geschrieben

Alle im PDF enthaltenen (RTF-) Textmarken werden in die XML-Datei geschrieben.

Aufbau der XML-Datei:

<pdfdocument>
<docinfo>
<docinfoitem>
<key></key>
<valuestring></valuestring> oder <valuedatetime></valuedatetime>
</docinfoitem>
</docinfo>
<pages>
<page>
<number></number>
<rtfbookmarks></rtfbootmarks>
</page>
</pages>
</pdfdocument>

(Ab Version 1.17.0) EmbeddedFilesInfo Informationen über die im PDF eingebetteten Dateien werden in der Property EmbeddedFilesInfo zurückgeliefert.
(Ab Version 1.20.0)

FontsInfo

ImagesInfo
Informationen über die im PDF Dokument enthaltenen Schriftarten und Bilder werden in den Properties FontsInfo und ImagesInfo zurückgeliefert.

Region

(ab Version 1.4.86)

=[[<page>:]<x1_mm>;<y1_mm>;<x2_mm>;<y2_mm>]...

 

Werte in eckigen Klammern sind optional

Mit Region spezifiziert man ein oder mehrere Rechtecke, und die Seiten auf denen die Rechtecke stehen.

Die Vereinigungsmenge all dieser Rechtecke (geschnitten mit der Seitenfläche) gibt den Bereich an, aus dem der Text extrahiert wird, d.h. alle Zeichen, die nicht wenigstens teilweise in einem dieser Rechtecke liegen, werden ignoriert als ob sie nicht vorhanden wären.

Mit Angabe von OutputFormat=FormatText wird ins outputfile.txt der extrahierte Text geschrieben, als unicode und mit Zeilenumbrüchen formatiert.
<page>: Keine Angabe oder “All“
“Odd”
“Even”
“First”
“Last”
“NoFirst”
“NoLast”
Zahl
Zahl1-Zahl
Beschreibung siehe oben
<x1_mm>;<y1_mm> ……

Zahlen, durch Semikolon getrennt.

Die Einheit ist mm.

Zur Beschreibung eines Rechteckes sind 2 Wertepaare erforderlich. Jedes Paar beschreibt die Koordinaten eines Eckpunktes des Rechteckes. Bezugspunkt für die Koordinaten ist die linke obere Ecke der Seite.

 

Beispiel:

cibrsh OutputFormat=FormatText Region=NoLast:10;20;80;40;1:85;120;190;145 -fj Test.pdf output.txt

PageCropping

(ab Version 1.25.0)

JSON Syntax

PageCropping= [<*PageBoxInfo*>, <*PageBoxInfo*>]

PageBoxInfo = {”PageNumber”:<PageNum>, “ClipBox”:[<X0>, <Y0>, <Width>, <Height>]}

PageNumber = Seitenummer im PDF

ClipBox ist ein Bereich mit den Parametern : X0(links), Y0(unten), Breite, Höhe

In Einheit: pt

Die X0 und Y0 Werte sind relative zur linken, oberen Ecke einer sichtbaren Seite (bzw. Bildes).

Über diese Property kann ein Rechteck definiert werden, das einen Maskenrahmen festlegt. Dieser Rahmen beschneidet das PDF-Dokument für die Anzeige im PDF-Viewer bzw. im Ausdruck.

Das Beschneiden verursacht nur ein Ausblenden der Informationen außerhalb des Maskenrahmens und kein Löschen, d.h. wenn der Rahmen nachträglich modifiziert wird, ist die ausgeblendete Information wieder zu sehen.

Die Property-Einträge beziehen sich immer auf eine Seite des PDF-Dokuments.

Beispiel:

Beschneiden der ersten und dritten Seite des PDF-Dokuments:

PageCropping=[{’PageNumber’:1, ‘ClipBox’:[10,20,300,400]}, {’PageNumber’:3, ‘ClipBox’:[20,20,100,200]}]

TableMode

(ab Version 1.4.100

=0  (default)

 =1

Extrahierter Text wird fortlaufend ausgegeben.

Extrahierter Text wird als Tabelle ausgegeben.

TextFormattingOptions

(ab Version 1.20.0)

 

 

 

 

 

 

 

 

 

 (ab Version 1.25.0)

={
”EnableTextFormatting”:
            true | false,
”OutputFormats”:
            [”txt”] | [”hocr”]

 

 

 

 

 

 

 

 

 SeparateTextBlocks:

            true | false

}

Bei EnableTextFormatting=true (default=false) wird ein spezielles Textverarbeitung-Modul aktiviert mit zusätzlichen Funktionen zur Verbesserung der Textqualität wie

- Eliminieren von Bindestrichen aus der Worttrennung

- Auflösen von Ligaturen

- Umwandeln von Initialen in Normaltext

- Eliminieren von Duplikaten (identische Texte an gleicher Stelle)

Nur für OutputFormat=FormatText

Beispiel:

cibrsh.exe OutputFormat=FormatText  TextFormattingOptions={”EnableTextFormatting”:true,”OutputFormats”:[”hocr”]} -fj input.pdf out.txt

 

Bei SeparateTextBlocks=true (default=false) wird nach Textblöcken gesucht, die dann in der Textausgabe durch eine Leerzeile getrennt werden. Das verbessert die Lesbarkeit des Ausgabetextes.
Textblöcke werden dadurch identifiziert, dass sie einen größeren Abstand voneinander haben.

API

(ab Version 1.20.0)

=1

 

=2

Default: Die CIB pdf toolbox führt den Job aus.

 

Die CIB pdf toolbox wird zum Wrapper für die neue CIB pdfModule. Das bedeutet, dass die CIB pdf toolbox die Aufgabe nicht selbst ausführt, sondern die Bibliothek der CIB pdfModule geladen wird und diese die Ausführung übernimmt.

Details siehe Kapitel „CIB pdfModule“


Die Seitenangaben besitzen unterschiedliche Prioritäten, so dass niedrigere Prioritäten von höheren überschrieben werden können. Die Prioritäten sind wie folgt verteilt:

Keine Priorität: All, Odd, Even, NoLast, NoFirst

Priorität RANGE: Zahl1 – Zahl2

Priorität DIRECT: Last, First, Zahl

Dabei gilt folgende Rangfolge: Keine Priorität < RANGE < DIRECT

Besitzen zwei Angaben gleiche Priorität, so gelten beide, ansonsten gilt die mit der höheren Priorität.


Beispiele für die Seitenauswahl

Folgende Beispiele zeigen mögliche Belegungen der Property InputFilename.

1)    InputFilename=Dokument1.pdf;{4,7-9};Dokument2.pdf;Dokument3.pdf 

Hier werden alle Seiten von Dokument1.pdf, die Seiten vier, sieben, acht und neun von Dokument2.pdf und alle Seiten von Dokument3.pdf in genau dieser Reihenfolge aneinandergefügt.

2)    InputFilename={5,4,3,2};Dokument1.pdf;{All};Dokument2.pdf;Dokument3.pdf;{Even};Dokument4..pdf

Hier werden die Seiten fünf, vier, drei und zwei von Dokument1.pdf, alle Seiten von Dokument2.pdf, alle Seiten von Dokument3.pdf und alle geraden Seiten von Dokument4.pdf in genau dieser Reihenfolge aneinandergefügt.

3)    InputFilename={First,Last};Dokument1.pdf;EMPTY;EMPTY:210,297;{7,10};Dokument2.pdf

Hier werden die erste und letzte Seite von Dokument1.pdf, eine leere Seite mit der Breite und der Höhe der letzten Seite von Dokument1.pdf, eine leere Seite mit der Breite 210 mm und der Höhe 297 mm und die Seiten sieben und zehn von Dokument2.pdf in genau dieser Reihenfolge aneinandergefügt.

4)    InputFilename={};Dokument1.pdf;{Odd};Dokument2.pdf;EMPTY:210,297

Hier werden alle Seiten von Dokument1.pdf, alle ungeraden Seiten von Dokument2.pdf und eine leere Seite mit der Breite 210 mm und der Höhe 297 mm in genau dieser Reihenfolge aneinandergefügt.

5)    InputFilename={NoFirst};Dokument1.pdf;EMPTY:210,297;{8,6,5,2-4};Dokument2.pdf;EMPTY

Hier werden alle Seiten außer der ersten von Dokument1.pdf, eine leere Seite mit der Breite 210 mm und der Höhe 297 mm, die Seiten acht, sechs, fünf, zwei, drei und vier von Dokument2.pdf und eine leere Seite mit der Breite und Höhe der vierten Seite von Dokument2.pdf in genau dieser Reihenfolge aneinandergefügt.


Spezielle Properties zum Ändern der Dokument-Eigenschaften

(ab CIB pdf toolbox 1.4.84)    Nur im PDF-Join

Propertybezeichnung

Typ

Funktionalität

Art

DocInfo.Author

String

Eingabe des Verfassers.

Überschreibt die im PDF hinterlegte Information.

Get/
Set

DocInfo.Title

String

Eingabe des Titels.

Überschreibt die im PDF hinterlegte Information.

Get/
Set

DocInfo.Subject

String

Eingabe des Betreffs/Themas.

Überschreibt die im PDF hinterlegte Information.

Get/
Set

DocInfo.Keywords

String

Eingabe der Stichwörter.

Überschreibt die im PDF hinterlegte Information.
Maximale Länge beträgt 64K.

Get/
Set

DocInfo.CreationDate

String

Eingabe des Erstellungs-Datums

Format:

JJJJMMTThhmmss+01‘00‘

Get/
Set

DocInfo.ModDate

String

Eingabe des Änderungs-Datums

Format:

JJJJMMTThhmmss+01‘00‘

Get/
Set

ModuleName

String

Eingabe des Programms, mit dem das PDF erstellt wurde.

Get/
Set

CallerApplicationname

String

Anwendung, die das PDF geändert hat.

Get/
Set


Spezielle Properties für die Grafik-Erzeugung

(ab CIB pdf toolbox Version 1.4.102)

Über den Modul CIB pdf join ist neben der PDF-Ausgabe auch das Erzeugen von Grafikdateien möglich.

Property

Funktionalität

Typ

OutputFormat

Format der Ausgabedatei

Unterstützt werden die Grafikformate:

FormatTiff
FormatPng,
FormatJpeg

FormatBmp
(ab CIB pdf toolbox Version 1.8.5a)

 

FormatWebview

String

OutputFormat

(ab Version 1.5.113)

FormatExtractImages

Bei Angabe dieses Ausgabeformats werden alle Image-XObjects, die sich in den Eingabe-PDFs befinden, exportiert. Die Ausgabe erfolgt im TIFF-Format oder im JPEG-Format unter der bei OutputFilename angegebenen Dateibezeichnung.

Achtung:

-           Es wird kein PDF geschrieben

-           OutputFilename ist ein Mussfeld

-           Eine Ausgabe in den Speicher ist nicht möglich

-           Es wird kein dpi Wert in die TIFF-Bilddatei(en) geschrieben


A.) Für die TIFF-Bilder gibt zwei Fälle zu unterscheiden:

1.) TiffSinglePage=“0“ (default):
Alle Pdf Bildobjekte, die nicht als JPEG Bild exportiert werden, werden in eine TIFF-Datei geschrieben. Deren Name ist der aus OutputFilename, mit Endung “.tif“.

2.) TiffSinglePage=“1“:
Jedes Pdf Bildobjekt, das nicht als JPEG Bild exportiet wird, wird als eigene TIFF-Datei gespeichert. Die Namen dieser TIFF-Dateien haben den Aufbau
“Output-000pp-000oo.tif“        wobei

„Output“ ist der Wert von OutputFilename, aber ohne Endung

„000pp“ ist die Nummer der Seite, auf der das Bildobjekt das erste Mal auftritt.

„000oo“ ist die Nummer des Bildobjekts.

 

Die Erzeugung der TIFF-Bilder kann direkt erfolgen oder die Pdf Bildobjekte werden zuerst in das DIB-Format (Windows Bitmap) und von dort in das TIFF-Format konvertiert.
Die Erzeugung des TIFF-Bildes erfolgt direkt, wenn für das Pdf Bildobjekt folgendes gilt:

- Das Pdf Bildobjekt hat keinen der Filter JBIG2Decode, DCTDecode oder JPXDecode.

- Es hat keine Maske und ist keine Maske.

- Der Farbraum ist „DeviceGray“, „DeviceRGB“ oder „DeviceCMYK“ (mit BitsPerComponent 8).

- Der Eintrag „Decode“ fehlt oder ist der Standardeintrag für den jeweiligen Farbraum ([0 1] für „DeviceGray“, [0 1 0 1 0 1] für „DeviceRGB“, [0 1 0 1 0 1 0 1] für „DeviceCMYK“).

 

Für alle anderen Pdf Bildobjekte erfolgt die TIFF-Ausgabe über den Zwischenschritt als DIB-Format. In diesem Fall bleiben nicht alle Bild-Eigenschaften erhalten:

Erhalten bleiben auch bei dem DIB-Zwischenschritt:
Anzahl Pixel in Breite und Höhe des Bildobjekts.

Verändert können werden bei dem DIB-Zwischenschritt:
Colorspace, BitsPerComponent und ComponentsPerPixel


B.) JPEG-Bilder werden für Pdf Bildobjekte, die den folgenden Bedingungen genügen, direkt (ohne Umwandlung) erzeugt und immer als einzelne JPEG-Bilder gespeichert:
- Das Pdf Bildobjekt hat einen Filter „DCTDecode“.

- Es hat keine Maske und ist keine Maske.

- Der Farbraum ist „DeviceRGB“.
- Der Eintrag „/Decode“ fehlt oder ist [0 1 0 1 0 1].

Die Bildung des JPEG-Dateinamens erfolgt nach der gleichen Regel wie der Dateiname für die einzelnen TIFF-Dateien (siehe oben).

String

ExtractImagesCallback

(ab Version 1.17.0)

Adresse der Callback-Funktion, die von der CIB pdf toolbox beim Parsen des PDF-Dokuments jedesmal beim Extrahieren eines Bild-Objektes aufgerufen wird.

 

String

ExtractImagesUserdata

(ab Version 1.17.0)

Adresse des Speicherbereiches, in dem die extrahierten Bilddaten und ihr Hash-Wert übergeben werden.

String

OutputFormat

(ab Version 1.14.0)

FormatImage

Bei diesem Ausgabeformat erzeugt die CIB pdf toolbox bei einem Rendering-Vorgang mehrere Ausgabe-Grafikformate.  Dabei muss es sich um Raster-Grafikformate handeln.

Erforderlich ist:
RenderingEngine=“CIBRenderer“

Welche Grafikformate erstellt werden sollen, wird über die Property „ImageType“ definiert.

String

OutputFormat

(ab Version 1.14.0)

FormatSvg

Die CIB pdf toolbox gibt eine Grafikdatei im SVG-Format aus (Scalable Vector Graphics=skalierbare Vektorgrafik).
Dabei handelt es sich um die vom World Wide Web Consortium (W3C) empfohlene Spezifikation zur Beschreibung zweidimensionaler Vektorgrafiken, die auf XML basiert.

Name der erzeugten Ausgabe:
Outputfilename.svg

Erforderlich ist:
RenderingEngine=“CIBRenderer“

String

OutputFilename

Name der Ausgabedatei, mit der entsprechenden Extension.

PNG und JPEG: Pro Seite im PDF wird eine Datei ausgegeben. Der Name wird durch Anhängen einer laufenden Nummer eindeutig gemacht.

String

InputFilename

Name des Eingabe-PDFs

Es können auch mehrere PDFs, getrennt durch Semikolon, eingegeben werden.

String

AbortDocCallback

(ab Version 1.10.0)

Adresse der Callback-Funktion für Ausgabedokument per Speicherübergabe.
Schnittstellenbeschreibung siehe Kapitel „AbortDocCallback“

String

AbortDocCallbackPointer

(ab Version 1.10.0)

Benutzerdaten des Callbacks für Rückmeldung nach jeder Seite

String

EventNotifier

(ab Version 1.24.0)

Der Pointer zu der Instanz der Callback-Klasse CibPdfEventNotifier wird dieser Property zugeordnet.

Damit kann die Ausgabe von RGB565-Daten in den Speicher ermöglicht werden.

Erforderlich für diese Funktionalität ist OutputFormat=FormatBmp und RenderingEngine=CIBRenderer

String

ImageAlign

(ab Version 1.8.6c)

Über die Property kann die Ausrichtung von Grafiken im PDF verbessert werden, wenn die Grafiken aneinander-hängen und nicht gedreht sind.

Bedingung:
RenderingEngine=CIBRenderer

0          Optimierung ist ausgeschaltet

1          Optimierung wird durchgeführt (default)

String

ImageScaling

(ab Version 1.9.7)

 

 

 

 

 

 

 

 

 

 

 

 




 

 

(ab Version 1.14.0)

Über die Property kann die maximale Größe der Grafik spezifiziert werden.
Breite;Höhe in px, bzw. Auflösung in dpi.

Gültige Werte:
[<Breite>px];[<Höhe>px] | <Auflösung>[dpi]

Achtung:
ImageScaling beinhaltet die Funktionalität von TiffResolution. Wenn beide Properties gesetzt sind, wird daher nur ImageScaling ausgewertet.
Im Falle der Auflösung ist nur die Angabe eines Wertes erforderlich, da nur eine für beide Achsen identische Auflösung unterstützt wird.

Beispiele:

ImageScaling=100px;200px
Maximale Höhe 200 px oder maximale Breite 100 px, je nachdem, welche Grenze zutrifft.

ImageScaling=;200px
Feste Höhe 200px, Breite beliebig

ImageScaling=200px
Feste Breite 200px, Höhe beliebig

ImageScaling=100dpi oder ImageScaling=100
Auflösung 100 DPI wird benutzt.

Erweiterung für den Einsatz der Property „ImageType“:

Bei Erzeugung mehrerer Grafikformate in einem Rendering-Vorgang können hier Grafikproportionen für jedes erzeugte Grafikformat spezifiziert werden. Die Werte sind in der gleichen Reihenfolge aufgelistet, wie die Grafikformate in der Property „ImageType“ definiert wurden. Zur besseren Lesbarkeit können die Wertepaare mit geschweiften Klammern gruppiert werden.
Die Eingabe von Leerwerten „;;“ ist möglich, dann greift die Default-DPI-Einstellung.

Beispiele:

ImageType=“png;tiff;bmp“
ImageScaling=“{50px;50px};{1000px;1000px};{500px;500px}“

ImageType=“jpg;bmp“
ImageScaling=“50px;50px;;“
Das JPG hat 50x50 px, das BMP die Default-DPI-Einstellung.

String

ImageType

(ab Version 1.14.0)

Über diese Property kann angegeben werden, welche Grafikformate die CIB pdf toolbox in einem Rendering-Vorgang erzeugen soll. Derzeit sind hier nur Raster-Imageformate möglich.

Erforderlich ist OutputFormat= FormatImage und RenderingEngine=“CIBRenderer“

Mögliche Werte sind:
jpg, jpeg, webp, bmp, bmplz4, jpegxr, png, tiff, tif

Beispiel:
ImageType=“png;tiff;bmp;webp“

Name der erzeugten Grafikdateien:

Um für die diversen Ausgabeformate einer Grafikdatei eindeutige Dateinamen zu erreichen, wird von der CIB pdf toolbox der Dateiname folgendermaßen aufgebaut:
<OutputFilename>-image<Seitennummer>-copy<Kopienummer>.<Dateierweiterung>

Beispiel:

OutputFormat=“FormatImage“
ImageType=“png;png;tiff“
ImageScaling=“{50px;50px};{500px;500px};{300px;300px}“
OutputFilename=“out.bmp“
2 Seiten

Ergibt die folgenden Dateien:
out-image00001-copy00001.png
out-image00001-copy00002.png
out-image00001-copy00003.tiff
out-image00002-copy00001.png
out-image00002-copy00002.png
out-image00002-copy00003.tiff

Hinweis:
Die Dateierweiterung von OutputFilename wird ignoriert, d.h. eine Datei „out.bmp“ wird nicht erstellt, sondern nur die in ImageType definierten Dateitypen.

String

Threads

(ab Version 1.15.0)

Über diese Property kann beim Renderingvorgang die Konvertierung in mehrere Grafikformate und das anschließende Schreiben der Dateien parallelisiert werden, was zu einer besseren Performance führt.

Erforderlich sind die Properties ImageType und RenderingEngine=“CIBRenderer“

Mögliche Werte:

N     Für die Erstellung der Grafikdateien werden maximal N Threads verwendet.

0      Keine Verwendung von Threads
(default, Verhalten der Vorversionen)

String

TiffResolution

Auflösung der Grafik-Ausgabe.
Defaultwert: 150 DPI

String

TiffStripSize

StripSize als Vielfaches von 8kB.

0 für keine,

Default ist 4, also 32kB-Strips

String

TiffJpegQuality

Nur bei TIFF:

Jpeg-Komprimierungsfaktor, Default ist 75%

String

TiffSinglePage

Nur bei TIFF:

Es kann pro PDF-Seite eine TIFF-Datei erzeugt werden.

0          Pro PDF eine TIFF-Datei (default)

1          Pro PDF-Seite eine TIFF-Datei

String

TiffColorDepth

Optionen für die Farbtiefe

Nur bei JPG und PNG:

2Colors

256Colors

256Grayscale

TrueColor (24Bit, Default)

Nur bei BMP:
(ab CIB pdf toolbox Version 1.24.0)

HighColor
Ausgabe gerenderter PDF Seiten als 16bpp BMP auf Platte oder als RGB565 Bitmaps in den Speicher.
(Erforderlich RenderingEngine=CIBRenderer)

String

WebviewOutputConfiguration

(ab CIB pdf toolbox Version 1.10.0)

 

 

 

 

 

 

 

ab CIB pdf toolbox Version 1.17.0)

 

 

Mit dieser Property kann die generierte Ausgabe für den CIB doxiView konfiguriert werden, sodass nur ein Ausgabeformat, statt standardmäßig Png und Metafile, erfolgt.

Mögliche Werte:

„Image“:          
bei gesetztem Wert wird pro Input-Dokumentseite ein Png-Bild für den CIB doxiView generiert

„Metafile“:       
bei gesetztem Wert wird pro Input-Dokumentseite ein Metafile für den CIB doxiView generiert

 „MetafileAsSingleFile“:
bei gesetztem Wert werden keine separaten Metafiles pro Seite geschieben, alle Informationen werden in ein Metafile geschrieben.

„MetafileNoPageContent“:      
schaltet die Verarbeitung von Seiteninhalt (page content streams) ab, als Folge werden Seiteninhaltsbezogene Metarecords wie z.B. TEXTRECT nicht ausgegeben. Die Metarecords STARTPAGE, ENDPAGE, EMBEDDEDFILE2 sind davon nicht betroffen.

„MetafileNoOutlines“:  
Schaltet die Verarbeitung von Outlines im PDF Dokument ab, als Folge werden keine Outlines Metarecords ausgegeben.

Die Werte „MetafileNoOutlines“, MetafileNoPageContent“ und „MetafileAsSingleFile“ können kumulativ verwendet werden. Sie sind nur dann gültig, wenn „WebviewOutputConfiguration“ so eingestellt ist, dass nur Metafiles erzeugt werden. Bei der Erzeugung von Bildern muss immer das gesamte PDF Dokument verarbeitet werden.

 

Beispiele:

Standardwert = „Image;Metafile“

Ab CIB pdf toolbox 1.20:

Zusätzlich kann die Option „ImageSkipAnnotations“ verwendet werden, um festzulegen dass für das CIB doXiview Rendering bestimmte Typen von Annotationen nicht in die Ausgabebilder gerendert werden.

Die Option „ImageSkipAnnotations“ hat dabei keine Auswirkungen auf die Ausgabe in ein Metafile.

Beispiel:

WebviewOutputConfiguration=“Image;ImageSkipAnnotations:[Redact,Line];Metafile“

Es sind folgende Werte für Annotationstypen möglich: “Text”, “Link”, “FreeText”, “Line”, “Square”, “Circle”, “Polygon”, “PolyLine”, “Highlight”, “Underline”, “Squiggly”, “StrikeOut”, “Stamp”, “Caret”, “Ink”, “Popup”, “FileAttachment”, “Sound”, “Movie”, “Widget”, “Screen”, “PrinterMark”, “TrapNet”, “Watermark”, “3D”, “Redact”.

 

“MetafileWithGlyph” :
Wenn gesetzt, wird im CIB doXiview Metafile ein neuer Metafile-record TEXTRECT2 geschrieben, der zusätzlich zu den Textinformationen noch Breiten für die einzelnen Zeichen schreibt.

 

String

SkipFormfieldContent

(ab CIB pdf toolbox Version 1.16.0)

 

Ermöglicht es, bei der Anzeige den Inhalt von Formularelementen (Textfelder, Checkboxen, Listenfelder) auszublenden.

Mögliche Werte:

0: Formularinhalte werden angezeigt

1: Formularinhalte werden nicht angezeigt

In Verbindung mit OutputFormat=FormatWebview zu verwenden.

 


Spezielle Properties für das ZUGFeRD-Datenmodell

(ab CIB pdf toolbox Version 1.9.0)

Das „Forum elektronische Rechnung Deutschland“ (FeRD) ist die nationale Plattform von Ministerien, Verbänden und Unternehmen zur Förderung der elektronischen Rechnung in Deutschland. ZUGFeRD ist die Abkürzung für „Zentraler User Guide des Forums elektronische Rechnung Deutschland“.

Jede auf dem ZUGFeRD-Datenmodell basierende Rechnung muss eine vollständige, gültige Rechnung sein (sowohl die PDF- als auch die XML-Darstellung). Die XML-Datei wird stets mit dem Namen „ZUGFeRD-invoice.xml“ eingebettet.

Die Eingabedatei muss bei der Einbettung entweder im PDF/A3 Standard vorliegen oder es muss beim CIB pdf toolbox-Join eine Konvertierung in diesen Standard durchgeführt werden.

Property

Funktionalität

Typ

ZUGFeRDXml

Angabe einer ZUGFeRD kompatiblen XML-Datei, die dann ZUGFeRD-kompatibel in das PDF eingebettet wird.

Bei OutputFormat=FormatInfo wird die Property ZUGFeRDXml mit dem Namen des Zugferd XMLs belegt, falls im Eingabe-PDF bereits eines eingebettet ist.

String

ZUGFeRDSchema

Angabe einer Schema-Datei, gegen die die ZUGFeRD-XML-Datei beim Importieren oder Extrahieren überprüft werden kann.
Beispiel: Invoice.xsd

String

ZUGFeRDDoCheck

Eingabe, ob beim Extrahieren oder Importieren einer ZUGFeRD XML Datei ein Schema-Check durchgeführt werden soll.

Mögliche Werte:
0          kein Schema-Check (default)
1          Schema-Check wird durchgeführt

Ist in Property ZUGFeRDSchema keine Schema Datei angegeben, wird für den Schema-Check die in der ZUGFeRD-XML-Datei enthaltene Schema Datei verwendet.

Wenn die Schema-Überprüfung fehlschlägt, wird ein Error 355 ausgegeben.

String

ZUGFeRDDescription

In dieser Property kann eine Beschreibung der ZUGFeRD-XML-Datei hinterlegt werden. Diese Beschreibung wird bei Einbetten der XML-Datei mit in das PDF übernommen.

Eingabe: Beliebiger Text

String


Über die Property „ExtractEmbeddedFile=zugferd“ kann die ZUGFeRD-XML-Datei in einem normalen CIB pdf toolbox-Join extrahiert werden.

 


Schwärzen Funktionalität

Mit Hilfe des „Schwärzen“ Funktionalität kann man die angegebenen Bereiche entfernen. Sie sind in der entstehenden PDF Ausgabe nicht mehr enthalten.

Bezeichnung

Wert

Auswirkung

ApplyRedactAnnotations

 

= 0  (default)

 

= 1 Schwärzung wird durchgeführt

Bei gesetzter Property schwärzt die CIB pdf toolbox die in den Annotations angegebenen Bereiche.

 

Redaction (Schwärzen) geschieht in folgenden Schritten:

1.     XFDF-Datei wird mit den Redaction-Annotations erstellt.

2.     CIB pdf toolbox importiert diese Annotations ins PDF-Dokument über „AnnotationsFilename=abc.xfdf“
Ergebnis ist dann ein PDF, das die zu schwärzenden Bereiche enthält.

 

Beispiel zu XFDF-Datei

<?xml version="1.0" encoding="utf-8"?>

<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">

<annots>

<redact

page="0"

rect="66.0,474.0,152.0,393.0"

interior-color="#000000">

</annots>

</xfdf>

 

Hinweis:

-> Die Seitennummern werden in zerobased angegeben.

-> Die gewünschten Koordinaten setzt man mit der Vorgabe eines Rechtecks(rectangle)

rect="66.0,474.0,152.0,393.0" -> wobei als Einheit PDF Koordinaten verwendet werden (1 cm entspricht 28,333... PDF Koordinaten). Das Rectangle wird angegeben als x,y linke untere Ecke und x,y rechte obere Ecke. Der Ursprung (Koordinate 0,0) der Seite befindet sich links unten.


14.3. CIB pdfmodule

Allgemein
Beispiel für Jobsteps zur Ansteuerung der CIB pdfModule


Allgemein

(ab CIB pdf toolbox Version 1.20.0, CIB pdfModule Version 1.3.0)

Bei dem CIB pdfModule handelt es sich um die Neuentwicklung eines PDF-Moduls, der im Vergleich zur CIB pdf toolbox ein wesentlich verbessertes Laufzeitverhalten (im Durchschnitt unter 2% der Laufzeit von CIB pdf toolbox) und einen wesentlich reduzierten Speicherverbrauch besitzt.

Die Größe der Ausgabedateien kann wesentlich reduziert werden und auch ein Zusammenführen von mehreren 1000 PDF Dateien ist kein Problem.

In Zukunft werden alle größeren neuen Features in diesem Modul entwickelt.

Die Ansteuerung des CIB pdfModules kann über das Interface der CIB pdf toolbox erfolgen, wobei aber die Binaries des CIB pdfModules erforderlich sind. Zur Nutzung dieses Moduls muss man die Properties zusätzlich zur API=2 nutzen. Diese sind im Technischen Leitfaden des CIB pdfModule beschrieben.

Es besteht außerdem die Möglichkeit, CIB pdfModule eigenständig ohne die Ansteuerung mittels der CIB pdf toolbox zu nutzen. Auch dies wird im Technischen Leitfaden des CIB pdfModule beschrieben.

Property

Funktionalität

Typ

API

 

Über diese Property kann gesteuert werden, ob die Bibliothek des CIB pdfModules geladen wird.


Mögliche Werte:

 

1        Default: Die CIB pdf toolbox führt den Job aus.

 

2        Die CIB pdf toolbox wird zum Wrapper für das neue CIB pdfModule. Das bedeutet, dass die CIB pdf toolbox die Aufgabe nicht selbst ausführt, sondern die Bibliothek des CIB pdfModules geladen wird und diese die Ausführung übernimmt.
In diesem Fall werden nur Properties ausgewertet und ausgeführt, die zum Funktionsumfang des CIB pdfModules gehören.

String


Beispiel für Jobsteps zur Ansteuerung der CIB pdfModule
Join von 2 PDF-Dokumenten, Ausgabe eines kompimierten PDFs im PDF/A-Format

……..

<job expected-result-code=”0” id=”” name=”TestJob” timeout=”0”>

<properties>

<property name=”OutputMode”>XML</property>

</properties>

<outputs/>

<steps>

<step command=”pdfjoin” expected-result-code=”0” name=”join” timeout=”0”>

<properties>

<property name=”InputFilename”>input1.pdf;input2.pdf</property>

<property name=”LicenseCompany”>testlizenz</property>

<property name=”LicenseKey”>dddd-3333-9999aaaa</property>

<property name=”API”>2</property> 

<property name=”WritingMode”>XrefStream</property>

<property name=”MergePdfAConform”>1</property>

<property name=”GenericFormfieldNamePrefix”>1</property>

<property name=”RegenerateFormFieldAppearences”>1</property>

<property name=”DetectDuplicateStreams”>1</property>

</properties>

</step>

<step command=”save” expected-result-code=”0” name=”save” timeout=”0”>      

<properties>

<property name=”OutputFilename”>./out.pdf</property>

</properties>

</step>

</steps>

</job>

………

15. Briefpapierfunktion, Overlay von Texten, Grafiken und Barcodes

Dieser Abschnitt gibt eine Einführung in die Briefpapier- und Overlay-Funktionalität der CIB pdf toolbox. Mithilfe der Briefpapierfunktion ist es möglich, PDF-Dokumente mit anderen PDF-Dokumenten zu hinterlegen. Die Overlay-Funktion ermöglicht es, verschiedene Grafiken und Texte an beliebiger Stelle in PDF-Dokumenten zu positionieren.

15.1. Briefpapierfunktion

Allgemein
Zusätzlich geltende Anweisungen
Beispiele
Anmerkungen zu Seiten in verschiedenen Formaten
Beispiele mit verschiedenen Formaten

Allgemein

Durch Angabe der Eigenschaft „BackgroundFilename“ beim PdfJoin wird das Ergebnisdokument des Joins mit den in dieser Property spezifizierten PDF-Dateien hinterlegt. Hierbei sind verschiedene Angaben möglich, um das Hintergrunddokument auf die Seiten des Hauptdokuments beliebig zu verteilen.

Über die Property „BackgroundFilenameAsForeground” kann veranlasst werden, dass das Ergebnis-Dokument nicht hinterlegt wird, sondern die hier spezifizierte Datei in den Vordergrund gesetzt wird.

BackgroundFilenameAsForeground:
Mögliche Werte:
0          Dokument liegt im Hintergrund (default)
1          Dokument liegt im Vordergrund

 

Die Property „BackgroundFilename“ wird wie folgt belegt:

BackgroundFilename=“{Seitenzahl(en)};FileName;{Seitenzahl(en)};FileName;...“

Bezeichnung

Wert

Wirkung

BackgroundFilename

Seitenzahl(en)

keine Angabe oder “All”

Auf allen Seiten verteilen

“Odd”

Auf ungeraden Seiten verteilen

“Even”

Auf geraden Seiten verteilen

“First”

Nur auf der ersten Seite

“Last”

Nur auf der letzten Seite

“NoFirst

Alle Seiten bis auf die erste

“NoLast”

Alle Seiten bis auf der letzte

Zahl

Nur auf Seite Zahl

Zahl1-Zahl2

Von Seite Zahl1 bis Zahl2

Zahl1-Zahl2,Zahl3, ...,ZahlN-ZahlM

Auf mehreren Seiten oder Seitenbereichen verteilen (Komma als Trennzeichen)

FileName

Pfad zur Datei

Die Seiten dieser Datei werden hinterlegt

BackgroundAdjustment

(ab Version 1.16.1)

 

AllExactMatches
Verhalten wie bisher (Default)

FirstExactMatch
Anwendung der ersten genau passenden Hintergrundseite, die in der Property BackgroundFilename für die aktuelle Seite definiert ist. Wenn keine passt, wird ein Fehlercode (366) ausgegeben und beendet.

BestMatch
Anwendung der am besten passenden Hintergrundseite von denen, die in der Property BackgroundFilename für die aktuelle Seite definiert sind. Sollte die Anwendung dieser Hintergrundseite scheitern, wird ein Fehlercode (366) ausgegeben und beendet.

 

 

Die Seitenangaben besitzen unterschiedliche Prioritäten, so dass niedrigere Prioritäten von höheren überschrieben werden können. Die Prioritäten sind wie folgt verteilt:

Priorität keine: All, Odd, Even, NoLast, NoFirst

Priorität DIRECT: Last, First, Zahl

Priorität RANGE: Zahl1 – Zahl2

Dabei gilt folgende Rangfolge: Keine Priorität < RANGE < DIRECT

 

Besitzen zwei Angaben gleiche Priorität, so gelten beide, ansonsten gilt die mit der höheren Priorität und niedriger priorisierte Angabe wird nicht angewendet.

Soll eine Seite eines Hintergrunddokuments durch mehrere Seitenangaben auf verschiedenen Seiten verteilt werden, sind diese durch Kommata zu trennen. Beispielsweise bedeutet First,Last, dass die Seite hinter die erste und letzte Seite des Eingabedokuments gelegt werden soll.

Ein Hintergrunddokument kann aus mehreren Seiten bestehen. In diesem Fall, können pro Datei mehrere Seitenangaben, durch Semikolon getrennt, gemacht werden (z.B. {First,Last;Even} So wird die erste Seite des Briefpapiers auf der ersten und letzten Seite des Hauptdokuments hinterlegt und die zweite Seite auf allen restlichen geraden Seiten). Die erste Angabe bezieht sich somit auf die erste Seite des Hintergrunddokuments, die zweite Angabe auf die zweite Seite usw. Zu beachten ist, dass die Seitenangaben in geschweifte Klammern zu setzen sind, sobald sie sich auf mehrere Seiten beziehen. Dies ermöglicht eine große Flexibilität in der Angabe auf welchen Seiten des Hauptdokuments, welche Seite der Hintergrunddokumente hinterlegt werden soll. In der Property „BackgroundFilename“ lassen sich auch mehrere Briefpapier-Anweisungen hintereinander angeben.


Zusätzlich geltende Anweisungen

Um auszudrücken, dass bestimmte Anweisungen zusätzlich gelten sollen, sind die Angaben durch geschweifte Klammern zu trennen.

Alles, was innerhalb der geschweiften Klammern steht ist durch oben genannte Prioritäten geregelt, zwischen den geschweiften Klammern gilt jedoch keine Priorisierung.

Soll eine Seite des Briefpapiers nicht verwendet werden, ist einfach eine 0 anzugeben.

{1;0;2} bedeutet also, dass die erste Seite hinter die erste Seite das Hauptdokuments gelegt wird, die 2. Seite hinter keine und die 3. Seite hinter die 2. Seite.

Folgende Beispiele sollen die Anwendung der Briefpapier-Funktionalität veranschaulichen:


Beispiele

Die Beispiele zeigen mögliche Aufrufe über die CIB runshell.

Die Kommandozeile der Beispiele liest sich wie folgt:

1.     Property Backgroundfilename setzen

2.     Runshellkommando PDF-Join = cibrsh.exe –fj

3.     input output

A.    cibrsh.exe BackgroundFilename=“{First;All};backgrounds.pdf“ –fj inhalt.pdf output.pdf

Hier wird die erste Seite von backgrounds.pdf hinter die erste Seite von inhalt.pdf gelegt, und die zweite Seite von backgrounds.pdf hinter die restlichen Seiten von inhalt.pdf. Das Ergebnis wird in output.pdf gespeichert.

B.     cibrsh.exe BackgroundFilename=“First;firstbackground.pdf;All;normalbackground.pdf“ –fj inhalt.pdf output.pdf

Hier wird die erste Seite von firstbackground.pdf hinter die erste Seite von inhalt.pdf gelegt, und die erste Seite von normalbackground.pdf hinter die restlichen Seiten. B. macht das gleiche wie A., nur dass die zwei Seiten des Hintergunds nun auf zwei Dateien verteilt sind.

C.    cibrsh.exe BackgroundFilename=“{Odd;Even};background.pdf;1-2;mainbackground.pdf“ –fj inhalt.pdf output.pdf

Hier wird die erste Seite von mainbackground.pdf hinter die erste und zweite Seite von inhalt.pdf (wegen höherer Priorität von „1-2“ gegenüber „Odd“ und „Even“) gelegt, die erste Seite von background.pdf hinter alle restlichen ungeraden Seiten von inhalt.pdf und die zweite Seite von background.pdf hinter alle restlichen geraden Seiten von inhalt.pdf.

D.    cibrsh.exe BackgroundFilename=“{1;2;3;4;5;6;7;8};background_8Seiten.pdf“ –fj inhalt.pdf output.pdf

Hier wird die erste Seite von background_8Seiten.pdf hinter die erste von inhalt.pdf, die zweite hinter die zweite, die dritte hinter die dritte usw. gelegt.

E.     cibrsh.exe BackgroundFilename=“{First;All};backgrounds.pdf“ –fj inhalt1.pdf;inhalt2.pdf;inhalt3.pdf output.pdf

Hier wird zunächst ein regulärer Join der drei Eingabedokumente (inhalt1.pdf … inhalt3.pdf) durchgeführt und anschließend das Briefpapier wie unter A. beschrieben hinterlegt.


Anmerkungen zu Seiten in verschiedenen Formaten

Eine Seite kann nur dann mit einer anderen Seite hinterlegt werden, wenn die Höhen und Breiten bis auf eine Toleranz von 3 pt gleich sind. Das bedeutet, dass die zu hinterlegende Seite höchstens 3 pt (entspricht 0,35 mm) höher oder breiter sein darf als die andere.

Zwei Seiten können nur miteinander vermischt werden, wenn ihre Höhen und Breiten (bis auf eine Toleranz von 3 pt) gleich sind. Wenn kein Briefpapier passt, wird eine Warnung im Trace ausgegeben aber kein Programmabbruch erzeugt.

Ab Version 1.16.1 der CIB pdf toolbox kann die Auswahl der Hintergrundseite über die Property BackgroundAdjustment gesteuert werden: Auswahl der ersten genau passenden Hintergrundseite oder Auswahl der am besten passenden Hintergrundseite.
Wir eine dieser beiden Möglichkeiten gesetzt und das Hinterlegen scheitert, erfolgt ein Programmabbruch mit Ausgabe einer Fehlermeldung (366). (

Möchte man ein Dokument, das gemischt aus Querformat-Seiten und Hochformat-Seiten besteht, mit einem Hintergrund unterlegen, ist dies möglich, wenn im Hintergrunddokument für beide Formate entsprechende Seiten enthalten sind.

Die Seiten für die unterschiedlichen Formate dürfen jedoch nicht auf mehrere Dateien verteilt sein.


Beispiele mit verschiedenen Formaten

cibrsh.exe BackgroundFilename=“{All;All};backgrounds.pdf“ –fj WechselndeFormate.pdf output.pdf

Die erste Seite von backgrounds.pdf ist eine Seite im Querformat, die zweite Seite eine Seite im Hochformat. Die Eingabedatei besteht sowohl aus Querformat-Seiten, als auch aus Hochformat-Seiten.Hier werden nun alle Seiten im Querformat mit der ersten Seite von backgrounds.pdf hinterlegt und alle Hochformat-Seiten mit der zweiten Seite von backgrounds.pdf

Natürlich kann man auch hier verschiedene Seitenangaben machen, wie etwa BackgroundFilename=“{Odd;Even;Odd;Even};backgrounds.pdf“

Hier besteht die Datei backgrounds.pdf aus 4 Seiten, die ersten beiden im Querformat, von denen die erste auf allen ungeraden Querformat-Seiten hinterlegt wird und die zweite auf allen geraden Querformat-Seiten. Die dritte und vierte Seite haben Hochformat und sind entsprechend auf ungeraden, bzw. geraden Hochformat-Seiten zu verteilen.


15.2. Overlayfunktion

Allgemein
Text
Grafik
Barcode
Releaseplan

Allgemein

Die Overlayfunktion für die CIB pdf toolbox  ermöglicht das Einfügen von Grafiken und Text an beliebigen Positionen in PDF-Dateien. Im Folgenden wird der gesamte Funktionsumfang genauer spezifiziert.

Durch Angabe der Property „Overlay“ beim Aufruf von PDF-Join, können Anweisungen für die Overlay-Funktion festgelegt werden. Die Property „Overlay“ enthält folgende Informationen:

  • eine Ebenen- und Positionsangabe mit optionaler Größenangabe. Bei Grafiken ist es möglich deren Höhe und Breite anzugeben, bei Texten entfällt diese Angabe.
  • eine Fontangabe (bei Texten) mit optionaler Rotation.
  • eine Seitenauswahl mit und ohne Prioritäten
  • zusätzliche Daten, alternativ bestehend aus:
  • einem Dateinamen
  • einem Textstring, der optional mittendrin {PAGE}, {NUMPAGES} oder {DATE} enthalten kann.
  • einer Barcode-Angabe, beginnend mit „BARCODE:“

<Overlay>:= <TextOverlay>*;<GrafikOverlay>*;<BarcodeOverlay>*

<TextOverlay>:=

POS:Ebene|X-Position;Y-Position;Seitenangaben;FONT:Font;Font-Size;Font-Style;Font-Color;[Orientierung] ( ab Toolbox 1.2.56);Text

<GrafikOverlay>:= (ab Toolbox 1.2.56) :=

POS:Ebene|X-Position,Breite;Y-Position,Höhe;Seitenangaben;Grafik

 

<BarcodeOverlay>:= (ab Toolbox 1.4.84):=

POS:Ebene;X-Position;Y-Position;Seitenangaben;BARCODE:Typ;Wert;Orientierung;Breite;Höhe;Prüfziffer

Diese Property-Angaben werden im Folgenden näher spezifiziert


Text

Die in der Property„Overlay“ spezifizierten Texte werden an gewünschter Stelle im Ergebnisdokument des Joins platziert.

Die Prioritäten sind hier genauso geregelt, wie im Abschnitt Briefpapier beschrieben.

Das Keyword POS: kennzeichnet den Positionsteil der Angabe und das Keyword FONT: den Teil, der die Schriftinformationen enthält.

Bezeichnung

Wert

Wirkung

Ebene

Negative Zahl

Anordnung hinter allen Elementen, die sich bereits im Dokument befinden. Je kleiner die Zahl, desto weiter hinten wird der Text eingefügt. (Zur Anordnung mehrerer Texte im Hintergrund)

Positive Zahl

(einschließlich 0)

0 bezeichnet den Text, der als erstes eingefügt wird.

Je größer die Zahl, desto weiter vorn wird der Text eingefügt.

Eine positive Zahl bedeutet, dass der entsprechende Text, vor allen Elementen angeordnet wird, die sich bereits im Dokument befinden.

Top

Ganz vorn. Wenn mehrere Texte durch „Top“ gekennzeichnet sind, werden sie in der Aufrufreihenfolge eingefügt, das heißt, der als letztes genannte Text kommt ganz vorne auf das Dokument.

keine Angabe

(Das Trennzeichen muss trotzdem angegeben werden.)

Entspricht „-1“

 

Achtung:

Als Trennzeichen sind „|“ oder „/“ möglich.

X-Position

„Center“

In horizontaler Richtung auf Seite zentrieren.

0 oder keine Angabe

Linker Rand

Zahl > 0

Abstand von links in mm

Y-Position

„Center“

In vertikaler Richtung auf Seite zentrieren.

0 oder keine Angabe

Oberer Rand

Zahl > 0

Abstand von oben in mm

Font

Helvetica

Courier

Times

Hier kann die Schriftart angegeben werden. Möglich sind die Type1 Standard Fonts von Pdf.

Font-Size

Positive Zahl

Auch halbe Schritte möglich
z.B. 3.5

Alternativ ist durch die Angabe von <width>,<height>
(ab CIB pdf toolbox 1.4.78) eine dynamische Schriftgröße möglich.

Schriftgröße in pt
oder Breite und Höhe in mm.

 

Der Text wird proportional vergrößert bis er den kleineren Wert von Breite oder Höhe erreicht.

Eventuelle Rotationen finden erst nach dem Skalieren statt.

 

Font-Style

bold

Text wird fett gedruckt

italic

Text wird kursiv gedruckt

Font-Color

RGB-Code, Komponenten durch Punkte getrennt. (R.G.B)

Beispiele

0.0.0         = schwarz

255.0.0    = rot

0.128.0    = grün

0.0.255    = blau

Default: schwarz (das Trennzeichen „;“ muss trotzdem angegeben werden)

Der Text wird in der angegebenen Farbe dargestellt. Die Farbanteile sind durch Punkte getrennt anzugeben.

Orientierung

(ab CIB pdf toolbox 1.2.56)

Winkel > 0

Der Text wird um diesen Winkel im Uhrzeigersinn rotiert

Seitenzahl(en)

keine Angabe oder “All”

Auf allen Seiten verteilen

“Odd”

Auf ungeraden Seiten verteilen

“Even”

Auf geraden Seiten verteilen

“First”

Nur auf der ersten Seite

“Last”

Nur auf der letzten Seite

“NoFirst”

Alle Seiten bis auf die erste

“NoLast”

Alle Seiten bis auf der letzte

Zahl1-Zahl2

Von Seite Zahl1 bis Zahl2

Zahl1-Zahl2,Zahl3, ...,ZahlN-ZahlM

Auf mehren Seiten oder Seitenbereichen verteilen (Komma als Trennzeichen)

Text

(zum jetzigen Zeitpunkt wird beliebiger Text und {PAGE},{DATE},{NUMPAGES} unterstützt (ohne Startnummer und Nummernart),

ab CIB pdf toolbox 1.2.56)

 

Beliebiger Text (kann auch die folgenden Word-Felder enthalten)

Der angegebene Text wird ins Dokument eingefügt.

Wenn mehrere Word-Felder nacheinander eingegeben werden, sind sie durch mindestens ein Leerzeichen zu trennen.

{PAGE \* startnummer                \*  nummernart}

Für „nummernart“ sind folgende Werte möglich:

Arabic = 1,2,3....

ArabicDash = -1-,-2-,-3-...

alphabetic = a,b,c....

ALPHABETIC = A,B,C…

roman = i,ii,iii….

ROMAN = I,II,III....

Fügt die aktuelle Seitenzahl ein, über die Optionen lassen sich Startnummer und Art der Nummerierung angeben.

{NUMPAGES \*nummernart}

Fügt die Anzahl der Seiten im Dokument ein.

{DATE \@ dd.MM.yyyy hh:mm:ss}

Fügt aktuelles Datum in gewünschtem Format ein.


Hinweis zu den Seitenzahlen

Die Seitenangaben besitzen unterschiedliche Prioritäten, so dass niedrigere Prioritäten von höheren überschrieben werden können. Die Prioritäten sind wie folgt verteilt:

Priorität keine: All, Odd, Even, NoLast, NoFirst

Priorität DIRECT: Last, First, Zahl

Priorität RANGE: Zahl1 – Zahl2

Dabei gilt folgende Rangfolge: Keine Priorität < RANGE < DIRECT

 

Besitzen zwei Angaben, die eine bestimmte Seite betreffen,, gleiche Priorität, so gelten beide, ansonsten gilt die mit der höheren Priorität und die niedriger priorisierte Angabe wird nicht angewendet.


Beispiele

Die Beispiele zeigen mögliche Aufrufe über die CIB runshell.

Die Kommandozeile der Beispiele liest sich wie folgt:

  1. Property Overlay
  2. Runshellkommando PDF-Join = cibrsh.exe –fj
  3. input output

  • cibrsh.exe Overlay=“POS:-1|Center;20;All;FONT:Helvetica;12;bold;0.0.0;;Infoblatt” –fj inhalt.pdf output.pdf

Hier wird auf hinterster Ebene (-1), zentriert in horizontaler Richtung (Center), 2 cm vom oberen Rand entfernt (20), in Schriftart Helvetica und Schriftgröße 12, fettgedruckt, auf allen Seiten (All) des Dokuments inhalt.pdf der Text „Infoblatt“ mit Schriftfarbe schwarz eingefügt. Das Ergebnis wird in output.pdf zurückgeliefert.

  • cibrsh.exe Overlay=“POS:Top|180;280;All;FONT:Helvetica;10;italic;255.0.0;;{PAGE}“–fj  inhalt.pdf output.pdf

 Hier wird auf vorderster Ebene (Top) 18 cm von links und 28 cm von oben in Schriftart Helvetica und Schriftgröße 10 kursiv auf jeder Seite des Dokuments input.pdf die aktuelle Seitennummer in Arabic mit Schriftfarbe rot eingefügt (1,2,3...). Das Ergebnis wird in output.pdf zurückgeliefert.

  • cibrsh.exe Overlay=“

POS:2|20;20;First,Last;FONT:Helvetica;24;;0.0.255;;TextVorn;

POS:1|30;30;First,Last;FONT:Helvetica;24;;255.0.0;;TextMitte;

POS:0|40;40;First,Last;FONT:Helvetica;24;;0.128.0;;TextHinten;

“ –fj inhalt.pdf output.pdf

 

Hier wird zunächst 4cm links und rechts vom Rand entfernt, in Schriftart Helvetica und Schriftgröße 24 auf der ersten und der letzen Seite des Dokuments input.pdf der Text „TextHinten“ mit Schriftfarbe grün eingefügt. Davor (1) wird 3cm von beiden Rändern entfernt „TextMitte“ mit Schriftfarbe rot und wiederum davor (2) 2 cm vom Rand entfernt „TextVorn“ “ mit Schriftfarbe blau eingefügt. Dadurch lässt sich der Effekt erzielen, dass mehrere Texte versetzt übereinander geschrieben werden. Das Ergebnis wird in output.pdf zurückgeliefert.


Grafik

Diese Funktionalität wird ab Toolbox 1.2.56 unterstützt. Die bisher erlaubten Formate sind bmp, jpg, gif und png.

Die in der Property „Overlay“ spezifizierten Grafiken werden an gewünschter Stelle im Ergebnisdokument des Joins platziert.

Die Prioritäten sind hier genauso geregelt, wie im Abschnitt Briefpapier beschrieben.

Die Property „Overlay“ wird wie folgt belegt:

[POS:Ebene|X-Position,Breite;Y-Position,Höhe;]Seitenangaben;Grafik

Bezeichnung

Wert

Wirkung

Ebene

wie Text

 

 

X-Position

wie Text

 

 

Breite

“ScaleToPage”

Auf Seitenbreite anpassen

0 oder keine Angabe

Original-Breite der Grafik(1 pixel=1 pt=1/72in)

Zahl > 0

Breite der Grafik in mm

Y-Position

wie Text

 

 

Höhe

“ScaleToPage”

Auf Seitenhöhe anpassen

0 oder keine Angabe

Original-Höhe der Grafik(1 pixel=1 pt=1/72in)

Zahl > 0

Höhe der Grafik in mm

Seitenzahl(en)

wie Text

 

 

Grafik

Pfad zur Grafikdatei

Die Grafik aus dieser Datei wird eingefügt

(ab Version 1.4.83)

MEMORYBLOCK: <Speicherblock-Delimiter>;<Speicherblöcke>

 <Speicherblöcke> ::=
<Speicherblock> [<Speicherblock-Delimiter> <Speicherblock>]...

Speicherblock ::=
<Adresse> <Speicherblock-Delimiter> <Länge>

Die Übergabe der Grafik kann auch im Speicher erfolgen. Dazu werden die Speicheradressen an die CIB pdf toolbox übergeben.

Ein <Speicherblock-Delimiter> ist ein einzelnes Zeichen ungleich „;“, das möglichst nicht in einem Filenamen vorkommt, z.B. „#“, „?“.

Adresse und Länge sind Dezimalzahlen.

Anstelle eines Dateinamens kann angegeben werden, dass ein farbiges Rechteck, eine Linie oder eine Bezier-Kurve an der spezifizierten Stelle platziert werden soll. Der Dateiname muss dann wie folgt ersetzt werden:

RECT:Color[;Orientierung;Transparenz]

LINETO:Color;X2,Y2

BEZIERTO:Color;SX1,SY1,SX2,SY2,X2,Y2

Linien und Bezier-Kurven haben keine Breiten- und Höhenangabe. Sie können nicht über den Wert „Center“ für X- und Y-Position zentriert werden. Die Angabe dieses Wertes wird als „-1“ interpretiert.

Bezeichnung

Wert

Wirkung

RECT: Color

(ab CIB pdf toolbox 1.2.56)

LINETO: Color

BEZIERTO: Color

(ab CIB pdf toolbox 1.4.75)

RGB-Code, Komponenten durch Punkte getrennt. (R.G.B)

Beispiele

0.0.0  = schwarz

255.0.0 = rot

0.128.0 = grün

0.0.255  = blau

Das Rechteck bzw. die Linie oder Bezier-Kurve wird in der angegebenen Farbe dargestellt. Die Farbanteile sind durch Punkte getrennt anzugeben.

Orientierung

> 0

Rechteck wird um den angegebenenWinkel im Uhrzeigersinn gedreht.

Transparenz

> 0

Grad der Transparenz für das Rechteck

Beispiel: 75 bedeutet, dass das Rechteck 75% transparent dargestellt wird.

Eine Transparenz von 100% bedeutet, dass das Rechteck unsichtbar wird.

X2

(X-Koordinate für den Endpunkt der Linie bzw. Bezier-Kurve)

0

Linker Rand.

 

Zahl > 0

Abstand von links in mm.

Y2

(Y-Koordinate für den Endpunkt der Linie bzw. Bezier-Kurve)

0

Oberer Rand.

 

Zahl > 0

Abstand von oben in mm.

SX1, SX2

(X-Koordinaten für den ersten und zweiten Stützpunkt der Bezier-Kurve)

0

Linker Rand.

 

Zahl > 0

Abstand von links in mm.

SY1, SY2

(Y-Koordinaten für den ersten und zweiten Stützpunkt der Bezier-Kurve)

0

Oberer Rand.

 

Zahl > 0

Abstand von oben in mm.


Beispiele

Die Beispiele zeigen mögliche Aufrufe über die CIB runshell.

Die Kommandozeile der Beispiele liest sich wie folgt:

  1. Property Overlay
  2. Runshellkommando PDF-Join = cibrsh.exe –fj
  3. input output

 

1)     cibrsh.exe Overlay=“POS:-1|Center,100;Center,100;Odd;Grafik.jpg“ –fj inhalt.pdf output.pdf

 Hier wird auf hinterster Ebene (-1), zentriert in X-Richtung und Y-Richtung (Center), auf allen ungeraden Seiten (Odd) des Dokuments inhalt.pdf das Bild Grafik.pdf eingefügt. Dieses wird auf die Maße 10x10 cm skaliert. Das Ergebnis wird in output.pdf zurückgeliefert.

2)     cibrsh.exe Overlay=“POS:Top|20,0;Center,0;2-8;Grafik.jpg“ –fj inhalt.pdf output.pdf

 Hier wird auf vorderster Ebene (Top) 2 cm von links und zentriert in Y-Richtung auf den Seiten 2-8 des Dokuments input.pdf das Bild Grafik.jpg in Originalgröße eingefügt. Das Ergebnis wird in output.pdf zurückgeliefert.

3)     cibrsh.exe Overlay=“POS:Top|Center,ScaleToPage;Center,ScaleToPage;First;Grafik.jpg“ –fj inhalt.pdf output.pdf

 Hier wird auf vorderster Ebene (Top) seitenzentriert sowohl in X- als auch in Y-Richtung, auf die erste Seite des Dokuments input.pdf das Bild Grafik.jpg eingefügt. Das Bild wird auf die Maße der Seite skaliert. Das Ergebnis wird in output.pdf zurückgeliefert.

4)     cibrsh.exe Overlay=“POS: Top|180,10;280,10;All;RECT: 255.255.255;POS:Top|180;280;All;FONT:Helvetica;10;italic;0.0.0;;{PAGE}“ –fj inhalt.pdf output.pdf

 Hier wird zunächst auf vorderster Ebene (Top) 18 cm von links und 28 cm von oben ein 1cm x 1cm großes weißes Rechteck eingefügt und dann in Schriftart Helvetica und Schriftgröße 10 kursiv auf jeder Seite des Dokuments input.pdf die aktuelle Seitennummer in Arabic an dieser Stelle eingefügt (1,2,3...). Das Ergebnis wird in output.pdf zurückgeliefert.

5)     cibrsh.exe Overlay=“POS:Top|0;0;All;LINETO: 255.0.0;210,297;“ –fj inhalt.pdf output.pdf

 Hier wird auf vorderster Ebene (Top) eine rote Linie vom linken oberen Rand (0,0) zum rechten unteren Rand (210,297) eingefügt. Das Ergebnis wird in output.pdf zurückgeliefert.

6)     cibrsh.exe Overlay=“ POS:Top|0;150;All;BEZIERTO: 255.255.255;100,60,150,110,210,150“ –fj inhalt.pdf output.pdf

 Hier wird auf vorderster Ebene (Top) eine rote Bezier-Kurve mit Anfangspunkt (0,150), Endpunkt (210,150) und den Stützpunkten (100,60) und (150,110) eingefügt. Das Ergebnis wird in output.pdf zurückgeliefert.


Barcode

(ab Release 1.4.84)

Die in der Property „Overlay“ spezifizierten Barcodes werden an gewünschter Stelle im Ergebnisdokument des Joins platziert.

Die Prioritäten sind hier genauso geregelt, wie im Abschnitt Briefpapier beschrieben.

Die Property „Overlay“ wird wie folgt belegt:

[POS:Ebene|X-Position;Y-Position;] Seitenangaben;BARCODE:Typ;Wert;Orientierung;Breite;Höhe;Prüfziffer;Codepage

QR [POS:Ebene|X-Position;Y-Position;] Seitenangaben;BARCODE:QR;Wert;Orientierung;Breite;Höhe;Größe;CodePage;KorrekturLevel 

Bezeichnung

Wert

Wirkung

Ebene

wie Text

 

 

X-Position

wie Text

 

 

Y-Position

wie Text

 

 

Seitenzahl(en)

wie Text

 

 

Typ

Ein Barcodetyp aus der von CIB format unterstützten Menge von Typen:

Code ITF

Code 2/5 Industrie

Code 2/5 Matrix

Code 39

Code 39 erweitert

Code 128 (A, B, C)

EAN 8

EAN 13

EAN 128

DataMatrix

PDF417

Code 93

Code 93 Extended

OMR Strichcodes

QR

Diese Barcodetyp wird verwendet

Wert

Zahlen

Der individuelle Wert, den der Barcode darstellen soll.

Orientierung

horizontalleft

vertikale Striche nebeneinander, erstes Zeichen links

horizontalright

vertikale Striche nebeneinander, erstes Zeichen rechts

verticalleft

horizontale Striche untereinander, erstes Zeichen oben

verticalright

horizontale Striche übereinander, erstes Zeichen unten

Breite

Strichbreite in mm

(x.xmm; oder x,xmm beides zulässig)

Setzt die Strichbreite des Barcodes

Höhe

Höhe der Barcode-Balken in mm

(x.xmm; oder x,xmm beides zulässig)

Setzt die Höhe der Barcode-Balken

Prüfziffer / KorrekturLevel

 

 

(ab Version 1.26.0)

default

Barcode wird mit Prüfziffer generiert

nochecksum

Barcode wird ohne Prüfziffer generiert

Die Prüfziffer gibt es bei 2D-Barcodes  (QR) nicht.

Default ist daher immer nochecksum.

Hier kann aber das Korrekturlevel (ECL) angegeben werden.

Das Level geht von 0 (geringe Korrektur) bis 3 (maximale Korrektur = default).

 

Codepage

Gibt Codepage für QR Barcode-Daten an.
Default: Ansi;

Mögliche Werte:

  • Ascii
  • Pca
  • Ansi
  • CodePageMac
  • CodePagePc
  • CodePagePdf
  • CodePage932ShiftJIS
  • CodePage949Hangul
  • CodePage936GB2312
  • CodePage950ChineseBIG5
  • CodePage1255Hebrew
  • CodePage1256Arabic
  • CodePage1253Greek
  • CodePage1254Turkish
  • CodePage1258Vietnamese
  • CodePage874Thai
  • CodePage1250EastEurope
  • CodePage1251Cyrillic
  • CodePage1257Baltic
  • CodePageUnicode
  • CodePageIdentity
  • CodePage1252Latin1
  • CodePageUtf8

Bemerkung:
Wenn „CodePageUtf8“ benutzt wurde, wird fehlende BOM (Bytereihenfolge-Markierung) am Anfang der eingehenden Barcode-Daten hinzugefügt.

Größe

(ab Version 1.26.0)

QR-Code: Die Größe wurde bisher nicht benutzt.
Jetzt kann hier die Version angegeben werden.

Die Größe des QR-Codes wird durch die Version bestimmt.

Beispiel:
Version 13 impliziert eine Größe von 69x69


Für die Belegung der Parameter nach „Wert“ wird auf entsprechende Dokumentationen bezüglich der Barcode-Realisierung im CIB format verwiesen. Welche Parameter mit welchem Wert belegt werden müssen, hängt stark vom Barcode-Typ ab.


Releaseplan

Die Overlayfunktion wird in mehreren Stufen realisiert. Die Realisierung der Funktionalität hat nach folgendem Stufenplan zu erfolgen:

  • Angabe des Word-Seriendruck-Felds {PAGE} mit Default-Option Arabic, Möglichkeit, Schriftart, -größe, -farbe und die Position des Textes selbst festzulegen.
  • Logos ohne Rotation
  • beliebiger Text mit Rotation
  • Unterstützung von anderen Feldern (wie {NUMPAGES} oder {DATE} mit Optionen an beliebigen Stellen im Text
  • Unterstützung von Barcodes

Es muss geprüft werden, inwieweit die Ebenen-Funktion ausgenutzt oder unterstützt werden kann. Es ist zu beachten, dass diese nicht im PDF 1.3 enthalten ist und von älteren Viewern nicht unterstützt wird.

Ab Toolbox 1.2.56 wird Overlay von Text (inklusive Rotation), Grafik und Rechtecken unterstützt.


15.3. Implementierungshinweise

Im Folgenden wird auf Besonderheiten bei der Implementierung hingewiesen.

Briefpapierfunktion
Overlayfunktion

Briefpapierfunktion

Allgemeiner Ablauf:

  • Der String der Property BackgroundFilename wird geparst. Für jede angegebene Seite wird ein PropertyInfo-Objekt erzeugt und einem PointerArray hinzugefügt. Jede PropertyInfo enthält folgende Informationen:
    • Ein Array mit PageSettings. Dieses enthält die Informationen, hinter welche Seite die Seite des Briefpapiers kommt. Der Index in diesem Array entspricht der Seite Hauptdokuments. Steht hier eine -1 drin, bedeutet das, dass die Seite nicht hinter die entsprechende Seite des Hauptdokuments kommt. Alle anderen Angaben bedeuten, dass sie dahinter kommt.
    • Einen Index (sagt aus um die wievielte Seite des Briefpapier-Dokuments es sich handelt)
    • Einen Filename (zugehörige Briefpapier-Datei)
  • Das Parsen läuft folgendermaßen ab:
    • Die durch geschweifte Klammern getrennten Angaben (wenn es mehrere sind) werden zerlegt (Trenner= „}{„)
    • Positionsdaten werden ausgelesen und abgelegt
    • Die Seitenangaben (die optional in geschweiften Klammern stehen), die durch „;“ getrennt mehrere Seiten des Briefpapiers angeben können, werden aufgesplittet.
    • Der Dateiname wird ermittelt
    • Die Seitenangaben werden verwendet um das Array der PageSettings zu belegen.
    • Die Angaben innerhalb einer geschweiften Klammer sind durch Prios geregelt.
    • In die einzelnen PageSettings der InfoObjekte werden zunächst je nach Prio die Zahlen 0,1,2 eingetragen (-1 default)
    • Sind die Arrays der InfoObjekte einer Klammer belegt, müssen diese noch miteinander abgeglichen werden. Höhere Prios überschreiben die niedrigeren, so dass immer wenn in 2 PageSetting-Arrays die gleiche Position belegt ist, die höhere Zahl gewinnt und die Position der niedrigeren mit -1 belegt wird.
  • Es wird zunächst ein normaler PdfJoin mit den Eingabedateien durchgeführt, anschließend werden die Backgrounddateien abgearbeitet. Hier werden die gleichen Prozeduren durchlaufen, wie beim normalen Join, nur dass anstelle der Methode, die einen neuen PageTree aufbaut, eine Methode aufgerufen wird, die die Inhalte mischt.
  • In dieser Methode werden die Property-Infos durchlaufen und überprüft, ob aufgrund der Pagesettings die Seite hinterlegt werden soll oder nicht.
  • Wurde die richtige BackgroundPage gefunden, wird ein neues Xobject aus der Hintergrundseite erzeugt:
    • Über GetContentstreamAsString() wird der Inhalt der Seite geholt und ein neues Dictionary erzeugt.
    • Daraus wird ein neuer Stream erzeugt und als neues Objekt in das Hauptdokument eingefügt.
    • Dieses Objekt wird zu einem Form Xobject verwandelt, indem in dessen Dictionary die entsprechenden Einträge gesetzt werden:
      • Type /XObject
      • Subtype /Form
      • BBox entspricht der MediaBox der Seite
      • Name muss ein Name sein, der das Objekt eindeutig innerhalb der Seite identifiziert, deshalb muss überprüft werden, ob der Name bereits vorhanden ist und evtl ein anderer vergeben werden
      • Das Resources-Dictionary entspricht dem der Hintergrundseite
  • Nun muss noch ein neues ContentStream-Objekt erzeugt werden, das auf das neues XObject referenziert und dem Dokument hinzugefügt werden: q XObjectName Do Q
  • Die Referenz auf dieses Objekt wird dann noch in das ContentArray der Hauptseite hinzugefügt (vorne dran, damit es im Hintergrund ist)
  • Die Xobjects werden in einem Array verwaltet, damit für jede Hintergrundseite nur eines erzeugt wird, und wenn es wieder gebraucht wird, aus dem Array geholt werden kann.
  • Die Annotations der beiden Seiten werden gemischt, indem die Referenzen auf Annotations der Hintergrundseite dem Annotations-Array der Hauptseite hinzugefügt. Werden. Evtl. /P – Einträge werden entfernt.

Auch die AcroForms der zweiten Seite müssen zur ersten hinzu gemischt werden.


Overlayfunktion

Allgemeiner Ablauf:

  • Der Inhalt der Property Overlay wird geparst. Bei fehlenden Positionsangaben werden die Default-Werte verwendet. Auch hier wird der gleiche Parser verwendet und PropertyInfo Objekte erzeugt.
  • Diese Objekte enthalten Angaben zu Position, Breite/Höhe (Grafik), Dateiname (bzw. Text)
  • Die erzeugten Informationen werden in einem Array von verwaltet. Nach dem Join wird das Hauptdokument mit den entsprechenden Overlay-Informationen gemischt.
  • Hier wird für jede Seite des Hauptdokuments das PropertyInfo-Array nach Elementen durchsucht, deren PageSettings mit der aktuellen Seite vereinbar ist. Ist ein solches gefunden, muss entweder die entsprechende Grafik, oder der entsprechende Text in das Hauptdokument eingefügt werden.
  • Für jede passende Angabe muss im Falle eines Textes wie folgt vorgegangen werden:
    • Man holt sich über GetContentstreamAsString() den Inhalt der Seite, je nachdem, ob der Text vor oder hinter den Inhalt der Seite soll, muss ein neuer Contentstream aufgebaut werden, in dem der neue Teil entweder vor oder hinter den alten Teil gesetzt wird:
      • q <alter contentstream> Q q <contentstream für einzufügenden text> Q“
    • Der ContentStream für den einzufügenden Text muss wie folgt aussehen:

BT

/F13 12 Tf

288 720 Td

(ABC) Tj

ET

 

    • BT kennzeichnet den Beginn, ET das Ende.
    • /F13 ist der Name des Fonts der verwendet werden soll
    • 12 die Schriftgröße
    • 288 720 sind die Positionsdaten
    • ABC der einzufügende Text
  • Hier wird also auf einen Font mit Namen F13 verwiesen. Dieser muss im Resources-Dictionary der Seite referenziert werden:

/Resources

<< /Font << /F13 23 0 R >>

             >> 

23 0 obj

<< /Type /Font

/Subtype /Type1

/BaseFont /Helvetica

>> 

endobj

    • Daraus ergibt sich, dass für jeden Font, der in der Property Overlay angegeben wird, ein Font-Objekt wie oben beschrieben erzeugt werden muss.
    • Auch hier muss darauf geachtet werden, dass die Namen innerhalb der Seite eindeutig sind.
  • Ausführungen für Grafiken und Barcodes werden in Zukunft ergänzt.


16. CIB ocr

OCR (optical character recognition) wird verwendet, um Text aus Bilder zu Entziehen.

Es können mit der CIB pdf toolbox hierfür alle properties der CIB ocr deepER genutzt werden.

Die einzelnen Properties werden im Leitfaden CIB ocr beschrieben.



17. Prüfschablonen verwenden

Mit Prüfschablonen ist es möglich zu prüfen, ob eine PDF Seite Inhalt enthält, an welcher Stelle und ob der Inhalt an dieser Stelle erlaubt bzw. zwingend erforderlich oder aber unerwünscht ist.

Die zu setzenden, speziellen Properties werden im Folgenden näher beschrieben.

Propertybezeichnung

Typ

Funktionalität

CheckMask

(ab CIB pdf toolbox

String

Beschreibt den Aufbau der konkreten Prüfschablonen. Die einzelnen Komponenten werden im Weiteren genauer beschrieben.

Aufbau:

<Checkmasklist> ::= <Checkmask> | <Checkmask> „;“ <Checkmasklist>

Es können mehrere Definitionen für Prüfschablonen aneinandergereiht werden. Sie werden durch Semikolon getrennt.

Beispiel:

CheckMask=“{{1,3-40}; {forbidden;2cm;2cm;5cm;4cm}}; {{2,5,6};{allowed;2cm;2cm;5cm;4cm};{mandatory;1cm;1cm;6cm;7cm}};“

<Checkmask>

 

String

Beschreibung einer Schablone.

Aufbau:
<Checkmask>::=“{„ <Pages>“;“<mask area> „}“

Für die Seiten, für die eine Prüfschablone angewendet werden soll, werden die Schablonen-Bereiche beschrieben.

Pro <Checkmask> können wahlweise „allowed“, „forbidden“ oder „mandatory“ Bereiche oder auch Kombinationen dieser Bereiche beschrieben werden.

<mask area>

 

Beschreibung des Prüfschablonen-Bereichs (Rechteck).

Aufbau:
<mask-area> = {forbidden | allowed | mandatory;left;top;right;bottom[;ID]}

Forbidden        In diesem Rechteck darf kein Text stehen

Allowed            In diesem Rechteck darf Text stehen

Mandatory       In diesem Rechteck muss Text stehen

 

left;top Koordinaten des linken, oberen Eckpunktes des Rechteckes (siehe in Grafik der Punkt A)

right;bottom    Koordinaten des rechten, unteren Eckpunktes des Rechteckes (siehe in Grafik der Punkt B)

ID        Angabe eines Bezeichners(ID) der in den CheckMaskViolations mit ausgegeben wird

Bezugspunkt für die Koordinaten ist die linke, obere Ecke der Seite.

Durch Eingabe von negativen Werten kann der Bezugspunkt auf die rechte untere Ecke der Seite geändert werden.

Unterstützt werden die Einheiten: mm, cm, in, ft;

Default: mm

<Pages>

 

Angabe der Seiten oder Seitenbereiche, auf denen die folgende Prüfschablone angebracht werden soll.
Die Seiten können bezogen auf das ganze Dokument oder auf eine Ausfertigung angegeben werden.
Wenn die Prüfschablone auf alle Seiten einer Ausfertigung aufgebracht werden soll, muss die Bezeichnung der Textmarke um „All“ ergänzt werden.

 

Aufbau:
<Pages>= {[any page number | from-to| All | Even | Odd | NoLast | NoFirst | First | Last]}  *

First (nur erste Seite),

NoFirst (nicht erste Seite),

Last (nur letzte Seite),

NoLast (nicht letzte Seite),

Even (gerade Seiten)

Odd (ungerade Seiten)

All (alle Seiten)

Wert (diese Seite)

Wert1-Wert2 (diesem Seitenbereich)

Wert1-Wert2[,]Wert3 (diesen Seiten/Seitenbereich)

 

CheckMaskViolations

String

Property liefert die Verletzungen der Prüfschablonen zurück.
(Get-Property).
Für jede Prüfschablone kann ein Bezeichner (ID) vergeben werden. Diese ID wird auch bei Ausgabe mitgegeben.

Es wird ausgegeben:
Position des Textes, der die Verletzung verursacht (content).

Position der Checkmask, die verletzt wird (masks).

 

Beispiel:

…{forbidden;50mm,50mm,150mm,100mm;myid1}.

Violations={{content;49.31;52.84;61.66;50.08;};{masks;{50;50;150;100;myid1}}}

Ausgabe im Trace:
Position der Checkmask, die verletzt wird
(masks).

Beispiel:

CheckMask: Content is placed on the forbidden area [forbidden;0mm;0mm;150cm;100mm;myid01].

CheckMaskThreshold

String

Ermöglicht das Einstellen einer Fehlertoleranz. Der Wert gibt an wieviele Pixel in einem „verbotenen“ Checkmaskbereich toleriert werden, ohne eine Verletzung auszulösen.

Angegeben werden können Ganzzahlen:

Default: 1

StopOnFirstCheckmaskViolation

String

Gibt an, ob bei der ersten auftretenden Verletzung abgebrochen werden soll.

Die Verletzung wird in der Property CheckmaskViolations gespeichert.

Mögliche Werte:

0: Es wird nicht abgebrochen (default)

1: Es wird abgebrochen

StopAfterCheckmaskViolation

String

Prüft das gesamte Dokument und speichert alle Verletzungen in der Property und gibt eine Fehlermeldung zurück.

Mögliche Werte:

0: Keine Fehlermeldung

1: Fehlermeldung und Speichern aller Verletzungen

 

 

18. Schneller Einstieg

Dieses Kapitel zeigt Ihnen in einem Kurzüberblick eine mögliche Nutzung der CIB pdf toolbox aus einer Kundenapplikation. Die Beispiele nutzen keineswegs den vollen Funktionsumfang, sondern demonstrieren das grundsätzliche Prinzip beim Umgang mit der CIB pdf toolbox.

Für Ihren konkreten Anwendungsfall können Sie auch gerne beim CIB Support rückfragen.

Hinweis:

Zur schnellen Benutzung der CIB pdf toolbox über die CIB runshell aus der Kommandozeile, befinden sich im Übergabe-Paket fertige Beispiele. Die Aufrufe der CIB runshell sind in Batch-Dateien fertig vorgegeben.


18.1. Einbindung der CIB pdf toolbox als C++ Codebeispiel

Allgemein
Statisches Anbinden der CIB pdf toolbox
Beschreibung des Codebeispiels

Allgemein

Nachfolgendes Beispiel demonstriert die Ansteuerung der CIB pdf toolbox unter C++.

Die im Codebeispiel verwendeten Dateien sind auf die im Lieferumfang enthaltenen Beispiele abgestimmt, damit ist eine sofortige Funktionalität zu Testzwecken gewährleistet.

Die Übersetzung des Codebeispiels erfolgte in Microsoft Visual Studio C++ 6.0. Für diese Entwicklungsumgebung ist auch das Projektfile beigefügt.

Für eine Integration in das eigene Projekt ist zu beachten:

  • Soll die Dll statisch oder dynamisch angezogen werden? Das Codebeispiel benutzt die statische Einbindung.
  • Anbindung an die eigene Fehlerbehandlung. Das Codebeispiel enthält eine minimale textbasierte Fehlerausgabe. Der Umgang mit Fehlercodes wird hier demonstriert.
  • Anbindung an die eigenen Dokumentanforderungen. Das Codebeispiel enthält hart codierte Dateinamen und dient nur zu Demonstrationszwecken. Die Verwaltung gilt es komplett den eigenen Anforderungen anzupassen

 

Hinweis:

Dieses Beispiel stellt einen funktionierenden Gesamtablauf dar. Zur Recherche einzelner Funktionen und deren mögliche Ausprägungen wird auf die Dokumentation, Hilfe und den CIB Support verwiesen.


Statisches Anbinden der CIB pdf toolbox

// CibPdfDll.cpp : Lädt die CIB pdf toolbox statisch aus einem gezielten Pfad
 
#include “stdafx.h”
#include <stdio.h>
#include <windows.h>
#include “CibPdfDll.h”
 
 
// Samplepdftoolbox.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
//
 
#include “stdafx.h”
#include <stdio.h>
#include <windows.h>
#include “..\bin\cibpdf.h”
 
int main(int argc, char* argv[])
{
printf(„Durchfuehren des pdfmerge XML samples:\r\n\r\n“);
//Generiere für jeden Datensatz eine eigene Ausgabedatei (wahr)
BOOL t_bRet = CibPdfSetProperty(“MultiOutput”, “1”);
//Angabe des PdfMerge-Eingaberequest, etwa XML:data.xml;<xpath>
t_bRet &= CibPdfSetProperty(“Data”, “XML:..\\merge xml\\data.xml;//Testdaten//Person”);
//Angabe der Eingabedatei
t_bRet &= CibPdfSetProperty(„InputFilename“,“““..\\merge xml\\test.pdf“““);
//Angabe des Ausgabedateinamens
t_bRet &= CibPdfSetProperty(„OutputFilename“,“..\\tempoutput\\mergeXMLoutput.pdf“);
if(!t_bRet)
       {
printf(„Fehler beim Setzen der Properties fuer CIB pdf merge\r\n\r\n“);
getchar();
return 0;
       }
//Den merge-Lauf durchführen
t_bRet = CibPdfMerge();
if(t_bRet)
       {
printf(„Status:\r\nCIB pdf merge erfolgreich in mergeXMLoutput.pdf durchgefuehrt\r\n“);
printf(„Zum weiteren Ablauf der Demo bitte [Return] druecken\r\n\r\n“);
getchar();
       }
else
       {
int t_FehlerNr;
if(!CibPdfGetLastError(&t_FehlerNr))
             {
printf(„Fehler aufgetreten. Die Fehlernummer kann nicht ausgelesen werden“);
getchar();
return 0;
             }
printf(„Fehler %d beim Durchfuehren von CIB pdf merge\r\n“, t_FehlerNr);
const int t_BufferLength = 1024;
char t_Fehlertext[t_BufferLength];
if( !CibPdfGetErrorText(t_FehlerNr, t_Fehlertext, t_BufferLength))
             {
printf(„Fehler aufgetreten. Der Fehlertext kann nicht ausgelesen werden“);
getchar();
return 0;
             }
printf(„Fehler: %s“, t_Fehlertext);
getchar();
return 0;
       }
 
printf(„Durchfuehren des CIB pdfjoin samples:\r\n“);
//Von den 3 Eingabedateien ist die erste verschlüsselt. Daher ein Paßwort übergeben
t_bRet = CibPdfSetProperty(„EncryptOwnerPassword“, „test1o;;“);
//Die Ausgabedatei soll verschlüsselt werden (Userpasswort),
// d.h. es wird beim Öffnen vom Reader abgefragt)
t_bRet &= CibPdfSetProperty(“OutputUserPassword”, “outputu”);
//Angabe der 3 Eingabedateien
t_bRet &= CibPdfSetProperty(„InputFilename“,
„..\\join\\test1.pdf;..\\join\\funktionstest1.pdf;..\\join\\funktionstest2.pdf“);
//Angabe des Ausgabedateinamens
t_bRet &= CibPdfSetProperty(„OutputFilename“,“..\\tempoutput\\joinoutput.pdf“);
if(!t_bRet)
       {
printf(„Fehler beim Setzen der Properties fuer CIB pdf join\r\n\r\n“);
getchar();
return 0;
       }
//Den Join durchführen
t_bRet = CibPdfJoin();
if(t_bRet)
       {
printf(„\r\nStatus:\r\nCIB pdf join erfolgreich in joinoutput.pdf durchgefuehrt\r\n“);
printf(„Zum weiteren Ablauf der Demo bitte [Return] druecken\r\n\r\n\r\n“);
getchar();
       }
else
       {
int t_FehlerNr;
if(!CibPdfGetLastError(&t_FehlerNr))
             {
printf(„Fehler aufgetreten. Die Fehlernummer kann nicht ausgelesen werden“);
getchar();
return 0;
             }
printf(„Fehler %d beim Durchfuehren von CIB pdf join\r\n“, t_FehlerNr);
const int t_BufferLength = 1024;
char t_Fehlertext[t_BufferLength];
if( !CibPdfGetErrorText(t_FehlerNr, t_Fehlertext, t_BufferLength))
             {
printf(„Fehler aufgetreten. Der Fehlertext kann nicht ausgelesen werden“);
getchar();
return 0;
             }
printf(„Fehler: %s“, t_Fehlertext);
getchar();
return 0;
       }
      
printf(„Ende der Demo.\r\n“);   
getchar();
return 0;
}


Beschreibung des Codebeispiels

Das Codebeispiel steuert als Erstes das im Übergabe-Paket hinterlegte Beispiel ‚merge xml’ an. Dabei werden die in der XML Datei ‚data.xml’ enthaltenen Daten in das Formular ‚test.pdf’ eingemischt. Für jeden enthaltenen Datensatz wird ein Ergebnisdokument mergeXMLoutput00001.pdf erzeugt. Wobei die angehängt Nummer pro Datensatz aufsteigt. Wird die Property ‚MultiOutput’ auf FALSE gesetzt, wird nur eine Ausgabedatei erzeugt und keine Nummer angehängt.

Im Anschluss wird das Beispiel ‚join’ angesteuert. Dabei werden die 3 Dateien ‚test1.pdf’, Funktionstest1.pdf’ und Funktionstest2.pdf aneinandergehängt. Für die verschlüsselte Eingabedatei test1.pdf wird das Passwort mit angegeben und die entstehende Ausgabedatei ‚ joinoutput.pdf’ wird ebenfalls mit einem Passwort verschlüsselt.

Die bei beiden Läufen entstehenden Ausgabedateien werden im Verzeichnis ‚ tempoutput’ abgelegt.


18.2. Einbindung der CIB pdf toolbox (PRINT) als VB Codebeispiel

Nachfolgendes Beispiel demonstriert die Ansteuerung der CIB pdf toolbox unter Visual Basic.

Das im Codebeispiel verwendete Test.pdf kann durch ein beliebiges PDF ersetzt werden.

Module Print
 
‚Der nachfolgende Programmcode zeigt den Druck über die CIB pdf toolbox als VB 
Codebeispiel. Ausgangssituation ist ein fertiges PDF-Dokument.
‚Fehlermeldungen und Fehlerentwicklungen werden hier nur eingeschränkt berücksichtigt.
‚Dieses Beispiel wurde mit Visual Studio 2008, Visual Basic .NET Framework 3.5 erstellt.
 
‚Deklaration der Methoden, die über die „CibPdf32.dll“ geöffnet werden und als 
Long ausgegeben werden
Private Declare Function CibPdfJoin Lib “CibPdf32.dll” () As Integer
Private Declare Function CibPdfSetProperty Lib “CibPdf32.dll”
(ByVal a_PropName As String, ByVal a_pPropValue As String) As Integer
Private Declare Function CibPdfGetProperty Lib “CibPdf32.dll”
(ByVal a_PropName As String, ByVal a_pProbValue As String) As Integer
Private Declare Function CibPdfShowPrintDialog Lib “CibPdf32.dll”
(ByVal a_ButtonID As Integer) As Intege
Private Declare Function CibPdfGetLastError Lib “CibPdf32.dll”
(ByRef a_iError As Integer) As Integer


Sub Main()
‚ Die Variable t_Return besitzt den Datentyp Long, hier werden die Rückgabewerte abgelegt
Dim t_Return As Integer
‚1. Festlegen der notwendigen Properties ‚Das Eingabe-Dokument wird angegeben. Diese Datei wird gedruckt t_Return = CibPdfSetProperty(„InputFilename“, „C:\test.pdf“) ‚3. Optional einen Druckdialog einblenden, der dem Anwender Änderungen ermöglicht CibPdfShowPrintDialog(0) ‚Ausgabeformat festlegen. Über den Befehl „FormatPrinter“ wird das Dokument auf dem Drucker ausgegeben. t_Return = CibPdfSetProperty(“OutputFormat”, “FormatPrinter”) ‚2. Optional mögliche Funktionalitäten angeben (nur exemplarisch in diesem Besipiel) ‚Mit den Standardeinstellungen des Druckers wird der Duplex Druck vorgenommen. t_Return = CibPdfSetProperty(“DuplexPrint2”, “DuplexPrintLong”) ‚Der Drucker druckt die Seiten 1,2,3,4,5. t_Return = CibPdfSetProperty(„PageSelection“, „1-5“) ‚Es wird zusätzlich 1 Kopie ausgegeben t_Return = CibPdfSetProperty(“PrintCopies2”, “1”) ‘Ausgabe anstoßen t_Return = CibPdfJoin() If (t_Return = 0) Then ‚Fehlernummer abholen
Dim t_Fehlernummer As Integer CibPdfGetLastError(t_Fehlernummer) End If End Sub End Module

18.3. Einbindung der CIB pdf toolbox - Java Codebeispiele

Nachfolgende Beispiele demonstrieren die Ansteuerung der CIB pdf toolbox unter JAVA.

Beispiel für PDF Integration aus RTF über CIB pdf/join
Beispiel mit CIB pdf/merge und CIB pdf/join
JAVA-Beispiel: Direkter Druck eines PDF-Dokuments über die CIB runshell und CIB pdf toolbox
Beispiel CIB pdf toolbox direkter Druck eines PDF-Dokuments über den Java Wrapper (JCoMod)

Beispiel für PDF Integration aus RTF über CIB pdf/join

Wenn Sie ein dynamisches RTF-Dokumentprojekt im Einsatz haben, daß auch PDF Dateien in das Zieldokument mit integriert, dann ist dafür in der Regel folgender Ablauf vorgesehen:

  • Über CIB merge wird zunächst das dynamische Dokumentprojekt unter Beteiligung von CSV und/oder XML Datenversorgung zu einer RTF Ergebnisdatei aufbereitet.
  • Über die CIB format/pdf Komponente entsteht aus der RTF Ergebnisdatei eine PDF Zwischenergebnisdatei. Dort sind nun XMP Metadaten enthalten, die weitere Anweisungen für den Verarbeitungsschritt mit der CIB pdf toolbox enthalten.
  • Über die CIB pdf toolbox wird nun aus der PDF Zwischenergebnisdatei eine PDF Ergebnisdatei erzeugt.

Das nachfolgende JAVA Beispiel beschreibt nur diesen letzten Schritt.

package com.cib.comod.test;
import com.cib.comod.jobs.ICibPdfJoinJob;
 
/**
• Beispielimplementation für eine Benutzung des JCoMod Wrappers mit
   CIB pdf toolbox
•  Beispiel:
•  1) Nimmt eine PDF Zwischenergebnisdatei und gibt sie als PDF Ergebnisdatei aus.
•  2) Intern im PDF enthaltene XMP Metadaten werden dabei verarbeitet
 *
 */
public boolean doPdfJoinJob(String a_Input, String a_Output, String a_Workspace)
{
    JCibPdfJoinJob t_PdfJob = new JCibPdfJoinJob();
    t_PdfJob.initialize();
    if (!t_PdfJob.isInitialized())
    {
       System.out.println(„Fehler beim Initialisieren des JCibPdfJoinJob“);
       t_PdfJob.dispose(); // Resourcen d. Jobs freigeben
       return false;
    }
 
    //t_PdfJob.setProperty(ICibPdfJoinJob.PROPERTY_LICENSEKEY, “...”);
//t_PdfJob.setProperty(ICibPdfJoinJob.PROPERTY_LICENSECOMPANY, “...”);
 
//PDF Zwischenergebnis aus CIB format/pdf Konvertierung
//muss die anzuhängende PDF Datei als XMP Metainfo enthalten
t_PdfJob.setProperty(ICibPdfJoinJob.PROPERTY_INPUTFILE, „input.pdf“);
 
//zu erzeugendes PDF Ergebnisdokument
t_PdfJob.setProperty(ICibPdfJoinJob.PROPERTY_OUTPUTFILE, „output.pdf“);
//Job ausführen    t_PdfJob.execute();
 
//Fehlerbehandlung
int t_Error =
        ((Integer)t_PdfJob.getProperty(ICibPdfJoinJob.PROPERTY_ERROR)).intValue();
    if (t_Error != 0)
    {
        // Fehler beim Ausführen des Jobs
        String t_Errortext = (String)
t_PdfJob.getProperty(ICibPdfJoinJob.PROPERTY_ERRORTEXT);
System.out.println(„Fehler beim Ausführen: „+t_Error+“ „+t_Errortext);
t_PdfJob.dispose(); // Resourcen d. Jobs freigeben
return false;
    }
t_PdfJob.dispose(); // Resourcen d. Jobs freigeben
return true;
}

Beispiel mit CIB pdf/merge und CIB pdf/join

Der nachfolgende Java Code muss in eine Java-Klasse „PdfToolboxSample“ eingefügt werden. Zusätzlich ist der Java JCoMod Wrapper (mindestens Version 2.0.20) erforderlich, der die CIB pdf toolbox native Library für Java über JNI kapselt und so eine einfache Steuerung aus Java möglich macht.

Der Wrapper besteht aus diesen Dateien:

  • CoModJobs.jar
  • JCoMod.dll

Damit das Beispiel kompiliert, muss die CoModJobs.jar im Classpath angegeben werden. Zum Zeitpunkt der Entwicklung war ein JDK 1.4.1 installiert.

Die im Codebeispiel verwendeten Dateien sind auf die im Lieferumfang enthaltenen Samples abgestimmt, damit ist eine sofortige Funktionalität zu Testzwecken gewährleistet.

import java.awt.Color;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import com.cib.comod.jobs.ICibPdfJoinJob;
import com.cib.comod.jobs.ICibPdfMergeJob;
import com.cib.comod.jobs.IComodJob;
import com.cib.comod.jobs.JCibPdfJoinJob;
import com.cib.comod.jobs.JCibPdfMergeJob;

public class PdfToolboxSample extends JFrame {
JTextField TextPdf1;
JTextField TextPdf2;
JTextField TextOut;
JTextField TextData;
JList FieldList;
JRadioButton RadioJoin;
JRadioButton RadioMerge;
	
public PdfToolboxSample()
	{
makeFrame();
	}
	
public void makeFrame()
	{
//Fenster erstellen
setTitle(“PdfToolboxSample”);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
//Controls erstellen
RadioMerge = new JRadioButton(new RadioMergeAction());
RadioJoin = new JRadioButton(new RadioJoinAction());
TextPdf1 = new JTextField(“..\\merge xml\\test.pdf”);
TextPdf2 = new JTextField(“..\\join\\test1.pdf;..\\join\\funktionstest1.pdf;..\\join\\funktionstest2.pdf”);
TextData = new JTextField(“XML:..\\merge xml\\data.xml;//Testdaten//Person”);
TextOut = new JTextField(“..\\tempoutput\\Output.pdf”);
//Labels erstellen
JLabel LabelPdf1=new JLabel(„Pdf file 1:“);
JLabel LabelPdf2=new JLabel(“Pdf file 2:”);
JLabel LabelData=new JLabel(“Data file:”);
JLabel LabelOut=new JLabel(“Output file:”);
JLabel LabelFields=new JLabel(“Pdf Fields:”);
             
//die richtigen Größen setzen 
RadioJoin.setSize(70,25);
RadioMerge.setSize(70,25);
LabelPdf1.setSize(70,25);
TextPdf1.setSize(280,25);
LabelPdf2.setSize(70,25);
TextPdf2.setSize(280,25);
LabelData.setSize(50,25);
TextData.setSize(280,25);
LabelOut.setSize(70,25);
TextOut.setSize(280,25);
LabelFields.setSize(70,25);
        
//die richtigen Positionen setzen
RadioJoin.setLocation(100,30);
RadioMerge.setLocation(180,30);
LabelPdf1.setLocation(20,60);
TextPdf1.setLocation(100,60);
LabelPdf2.setLocation(20,90);
TextPdf2.setLocation(100,90);
LabelData.setLocation(20,120);
TextData.setLocation(100,120);
LabelOut.setLocation(20,150);
TextOut.setLocation(100,150);
LabelFields.setLocation(20,180);
        
FieldList = new JList();
JScrollPane FieldsPane = new JScrollPane(FieldList);
FieldsPane.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
FieldsPane.setSize(280,100);
FieldsPane.setLocation(100,180);
        
//einen Button zum Ausführen von Join und Merge erstellen
JButton ButtonExecute = new JButton(new ExecuteAction());
ButtonExecute.setSize(100,25);
ButtonExecute.setLocation(100,320);
        
//alles aufs Fenster setzen
getContentPane().setLayout(null);
getContentPane().add(RadioMerge);
getContentPane().add(RadioJoin);
getContentPane().add(ButtonExecute);
getContentPane().add(LabelPdf1);
getContentPane().add(TextPdf1);
getContentPane().add(LabelPdf2);
getContentPane().add(TextPdf2);
getContentPane().add(LabelData);
getContentPane().add(TextData);
getContentPane().add(LabelOut);
getContentPane().add(TextOut);
getContentPane().add(LabelFields);
getContentPane().add(FieldsPane);
        				
//Voreinstellung und anzeigen
RadioJoin.setSelected(true);
enableFields();
setVisible(true);
	}
	
public static void main(String[] args)
	{
JFrame.setDefaultLookAndFeelDecorated(true);
new PdfToolboxSample();		
	}
	
class ExecuteAction extends AbstractAction {
public ExecuteAction() {
putValue(Action.NAME, “Execute”);}
public void actionPerformed(ActionEvent e) {	
execute();}
	}
	
class RadioJoinAction extends AbstractAction {
public RadioJoinAction() {
putValue(Action.NAME, “Join”);}
public void actionPerformed(ActionEvent e) {
RadioMerge.setSelected(false);
enableFields();}
	}
	
class RadioMergeAction extends AbstractAction {
public RadioMergeAction() {
putValue(Action.NAME, “Merge”);}
public void actionPerformed(ActionEvent e) {
RadioJoin.setSelected(false);
enableFields();}
	}
	
//Plausibilisierung der GUI
public void enableFields()
	{
if(RadioJoin == null)
return;
if(RadioJoin.isSelected())
		{
TextPdf2.setEnabled(true);
TextPdf2.setBackground(Color.white);
TextData.setEnabled(false);
TextData.setBackground(PdfToolboxSample.this.getBackground());
		}
else
		{
TextPdf2.setEnabled(false);
TextPdf2.setBackground(PdfToolboxSample.this.getBackground());
TextData.setEnabled(true);
TextData.setBackground(Color.white);
		}
	}
	
//Job ausführen
public void execute()
	{
//sich für einen Job entscheiden
if(RadioJoin.isEnabled())
doJoin();
if(RadioMerge.isEnabled())
doMerge();
	}
	
public void doMerge()
	{
//erzeuge einen JCibPdfMerge-Job
JCibPdfMergeJob t_Job = new JCibPdfMergeJob();

// Der Job muss initialisiert werden, sonst läuft gar nichts
if (!t_Job.initialize())
		{
System.out.println(„Fehler beim Initialisieren des Jobs“);
return;
		}

// setze die Properties
t_Job.setProperty(ICibPdfMergeJob.PROPERTY_INPUTFILE, TextPdf1.getText());
t_Job.setProperty(“Data”, TextData.getText());
t_Job.setProperty(ICibPdfMergeJob.PROPERTY_OUTPUTFILE, TextOut.getText());
t_Job.setProperty(“GetFieldInfo”, “1”);
// Merge Job ausführen
t_Job.execute();
		
//FieldInfos auswerten
String t_FieldNames = (String) t_Job.getProperty(“FieldNames”);
//FieldNames sind ;-separiert
if (t_FieldNames != null)
		{
String t_FieldNamesArray[] = t_FieldNames.split(“;”);
FieldList.setListData(t_FieldNamesArray);
		}

//Fehlerbehandlung
System.out.println(“execute() beendet: “);
		
if (((Integer)t_Job.getProperty(IComodJob.PROPERTY_ERROR)).intValue()>0)
System.out.println(“Fehler beim Ausführen: “+t_Job.getProperty(IComodJob.PROPERTY_ERROR)+” “+t_Job.getProperty(IComodJob.PROPERTY_ERRORTEXT));
else
System.out.println(„Erfolg\n“);
System.out.println(„Merge Job geschlossen\n“);
	}
	
public void doJoin()
	{
//erzeuge einen JCibPdfJoin-Job
JCibPdfJoinJob t_Job = new JCibPdfJoinJob();

// Der Job muss initialisiert werden, sonst läuft gar nichts
if (!t_Job.initialize())
		{
System.out.println(„Fehler beim Initialisieren des Jobs“);
return;
		}

// die zu joinenden PDFs als ;-separierte Liste zusammenbauen
String t_String = TextPdf1.getText();
if (TextPdf2.getText().toString().length()>0)
t_String += „;“;
t_String += TextPdf2.getText();
// setze die Properties
t_Job.setProperty(ICibPdfJoinJob.PROPERTY_INPUTFILE, t_String);
t_Job.setProperty(ICibPdfJoinJob.PROPERTY_OUTPUTFILE, TextOut.getText());
t_Job.setProperty(“GetFieldInfo”, “1”);
// Join Job ausführen
t_Job.execute();
		
//FieldInfos auswerten
String t_FieldNames = (String) t_Job.getProperty(“FieldNames”);
//FieldNames sind ;-separiert
if (t_FieldNames != null)
		{
String t_FieldNamesArray[] = t_FieldNames.split(“;”);
FieldList.setListData(t_FieldNamesArray);
		}

//Fehlerbehandlung
System.out.println(“execute() beendet: “);
		
if (((Integer)t_Job.getProperty(IComodJob.PROPERTY_ERROR)).intValue()>0)
System.out.println(“Fehler beim Ausführen: “+t_Job.getProperty(IComodJob.PROPERTY_ERROR)+” “+t_Job.getProperty(IComodJob.PROPERTY_ERRORTEXT));
else
System.out.println(„Erfolg\n“);
System.out.println(„Join Job geschlossen\n“);
	}
	
}

JAVA-Beispiel: Direkter Druck eines PDF-Dokuments über die CIB runshell und CIB pdf toolbox

Um diese Beispiel auszuführen werden zwei weitere Klassen benötigt: RunshellProcess.java und Process.java .Diese erhalten Sie gerne beim CIB Support.

import java.io.*;
import de.cib.comod.RunshellProcess;

public class DirectPrintPdf {
public static void main(String[] args) {
//PDF-Datei festlegen z.B. ein Test.pdf
String inputFileName = new String(“..\\Test.pdf”);
// neuen Runshell-Prozess starten
RunshellProcess cibRunShell = new RunshellProcess(“cibrsh.exe”);
//Druckernamen festlegen z.B. HP LaserJet 4100 Series PS
cibRunShell.addArgument(„PrinterName = \\\““ + „HP LaserJet 4100 Series PS“ + „\\\““);
//Ausgabeformat festlegen
cibRunShell.addProperty(„OutputFormat“, „FormatPrinter“);
//Eingabedatei festlegen
cibRunShell.addCommand(RunshellProcess.COMMAND_PDFJOIN, inputFileName);
try {
//Pfad zu den Libraries angeben und Prozess starten
runshell.executeAndWait(new File(“.”));
		}
catch(IOException io) {
io.printStackTrace();
		}
catch(InterruptedException inter) {
inter.printStackTrace();
		}
}


Beispiel CIB pdf toolbox direkter Druck eines PDF-Dokuments über den Java Wrapper (JCoMod)
import java.io.*;
import com.cib.comod.jobs.*;

public class DirectPrintPdf {
public static void main(String[] args) {
JCibPdfJoinJob t_PDFJob = new JCibPdfJoinJob();
t_PDFJob.initialize();
if (!t_PDFJob.isInitialized())
		{
System.out.println(„Fehler beim Initialisieren der Dll“);
return;
		}
//PDF-Datei festlegen z.B. ein Test.pdf
t_PDFJob.setProperty(ICibPdfJoinJob.PROPERTY_INPUTFILE, “Test.pdf”);
//Druckernamen festlegen z.B. HP LaserJet 4100 Series PS
t_PDFJob.setProperty(„PrinterName“, „HP LaserJet 4100 Series PS“ );
//Ausgabeformat festlegen
t_PDFJob.setProperty(ICibPdfJoinJob.PROPERTY_OUTPUTFORMAT, “FormatPrinter”);
//Prozess starten
t_PDFJob.execute();
int t_ReturnValue =(Integer)t_PDFJob.getProperty(ICibPdfJoinJob.PROPERTY_ERROR)).intValue();
if (t_ReturnValue != 0) 
		{
System.out.println(“Fehler! CIB pdf toolbox returns “ + t_ReturnValue);
		}
t_PDFJob.dispose();
}

19. Programmrückgabewerte

Nachfolgende Aufstellung gibt eine Übersicht über mögliche Fehlerrückgaben durch CIB pdf toolbox. Es gibt für Anwendungsentwickler CoMod Schnittstellen um zu einer Fehlernummer direkt den Text abzufragen und dem Endanwender mit konkreten Hinweisen weiterzuhelfen. Funktionen mit welchen die Fehlertexte abgeholt werden sind CibPdfGetLastError(int a_iError) und CibPdfGetLastErrorText(char a_pTextBuffer, long a_lBufferLength).

Rückgabewert

Bedeutung / Mögliche Ursache

0

Alles in Ordnung

2

Property kann nicht gelesen werden

3

Property kann nicht veraendert werden

9

Keine Eingabedatei oder Eingabedatei ist fehlerhaft

10

Zu wenig Arbeitsspeicher zum Anlegen notwendiger Resourcen

11

Diese Methode ist nicht implementiert

13

Drucker nicht gefunden

14

Fehlerhafte Buchstaben-, Font- oder Grafikgroeße

25

Zeile zu lang in der Parameterdatei

26

Lizenzdaten unvollstaendig

28

Interner Programmfehler. RTF-Text bitte an CIB Support uebermitteln

29

Ungueltiges Funktionsargument

31

Windows Standard Druckdialog kann nicht angezeigt werden

34

Fehler beim Pdf Fontembedding mit System-Routine SelectObject

35

Fehler beim Pdf Fontembedding mit System-Routine GetFontData

39

Ungueltiges Tabellenformat

47

Uebergebener Rueckgabepuffer ist zu klein

48

Systemfehler bei Fontauswahl für Drucker aufgetreten

52

Es ist kein Fontverzeichnis gesetzt

58

Fehler beim Umwandeln einer Grafik in PDF

64

Verwendetes Grafikformat wird nicht unterstuetzt

66

Buchstabenbreite kann nicht aus den Fontdaten ermittelt werden

78

OS/2 2.x Bitmapformat wird derzeit nicht unterstuetzt

92

Fehler bei der korrekten Fontaufbereitung

96

OS/2 Treiberstruktur enthaelt keine Laengenangabe

99

Ungueltiger Propertyname

100

Ungueltiger Propertywert

102

Heap konnte nicht angelegt oder aktiviert werden

103

Fehler bei der Zlib Kompression oder Dekompression

109

Keine Ausgabedatei angegeben

117

Internetfunktionen (wininet.dll) nicht gefunden

118

Verzeichnisfehler

120

Kann Datei nicht loeschen

121

Dateifehler

122

Ungueltiger Lizenzschluessel

128

Socket Fehler

181

Allgemeiner Tiff Fehler

182

Ungueltige Farbtiefe bei Tiff Konvertierung

185

Group3/4 und RLE Kompression nur gueltig bei 2 Farben

195

Allgemeiner Type1 Fehler

198

Unerwarteter Ausnahmefehler aufgetreten und abgefangen

199

In der Barcodeanweisung steht ein leerer Barcodewert

255

Der Dokumentinhalt passt nicht in die definierte Checkmask

256

Der Dokumentinhalt passt nicht in die definierte Fontmask

267

Ausgabeformat unterstützt keine Ausgabe in Speicher

270

Die OpenSSL Bibliothek konnte nicht gefunden werden

271

Die Zertifikatsdatei konnte nicht gefunden werden

272

Die Zertifikatsdatei hat ein nicht unterstütztes Format

273

Das Passwort für die Zertifikatsdatei ist inkorrekt

274

Das Zertifikat ist noch nicht gültig oder abgelaufen

279

Generierung des DataMatrix-Barcodes fehlgeschlagen ( möglicherweise zu große Datenmenge)

297

Ausgabeformat unterstützt keine Ausgabe in Speicher

300

Allgemeiner Pdf-Fehler

301

Interner Pdf-Fehler (Assertion)

302

Fehler in PdfMerge

303

Fehler in PdfConcat

304

Fehler beim PdfPrint

305

Allgemeiner Fehler beim Erzeugen der Pdf Signatur

306

Die OpenSSL Bibliothek konnte nicht gefunden werden

307

Die Zertifikatsdatei konnte nicht gefunden werden

308

Die Zertifikatsdatei hat ein nicht unterstütztes Format

309

Das Passwort für die Zertifikatsdatei ist inkorrekt

310

Fehler beim Zugriff auf Daten (csv,xml,xfdf)

311

Dokument konnte nicht weboptimiert werden

312

Dokument konnte nicht geparst werden

313

Fehler beim Zugriff auf eine dll

314

Fehler in der CibDataXml oder CibDataCsv

315

Daten-Zugriffstyp wird nicht unterstützt

316

Inkompatible Datenzugriffs-dll

317

Datensatz konnte nicht gelesen werden

318

Datensatz konnte nicht gelesen werden: syntax error

319

xml-Abfrage liefert keine Daten

320

Fehler beim Zugriff auf cibcache.dll

321

Formularfeld ist nicht im Pdf enthalten

322

Formularfeldwert kann nicht gesetzt werden

323

Pdf-Objekt kann nicht aktualisiert werden

324

Pdf ist verschlüsselt und das übergebene Passwort ist nicht in Ordnung oder leer

325

Feldwert-Properties passen nicht zur Eingabedatei

326

Owner-Paßwort (Hauptkennwort) benötigt

327

Unzureichende Rechte

328

Ownerpaßwort (Hauptkennwort) ungültig

329

Inkompatible Acroformen

330

Signatur konnte nicht verifiziert werden

331

Das Zertifikat ist noch nicht gültig oder abgelaufen

332

Die Zertifikatskette ist ungültig

333

Das Zertifikat ist nicht vertrauenswürdig

334

Allgemeiner Fehler beim Validieren der Pdf Signaturen

335

Die Signatur hat ein inkorrektes oder nicht unterstütztes Format

336

Die CIB ocr Bibliothek konnte nicht gefunden werden

337

Allgemeiner Fehler in der CIB ocr Bibliothek

338

Notwendige Daten für die CIB ocr Bibliothek konnten nicht gefunden werden

 

 

340

Allgemeiner JBIG2 Fehler

341

Unerwartete Ausnahme im JBIG2 Modul

342

JBIG2-Modul konnte nicht geladen werden

343

Fehler beim Auslesen der JBIG2-Daten

344

Fehler beim Dekomprimieren eines JBIG2 Bilds

345

Fehler beim Komprimieren eines JBIG2 Bilds

346

Kann nicht in PDF/A konvertiert werden (aus unterschiedlichen Gründen)

347

In PDF wurde Transparenz verwendet, kann nicht in PDF/A konvertiert werden

348

Es wurden sowohl RGB- als auch CMYK-Farbräume verwendet, kann nicht in PDF/A konvertiert werden

349

Die Eigenschaft ‚OutlinesAdd‘ hat ein inkorrektes Format

350

Systemfehler: Eine temporäre Schriftartdatei konnte nicht installiert werden

351

In PDF wurde Optional Content Group (OCG) verwendet, kann nicht in PDF/A konvertiert werden

352

Problem mit eingebetteter Schriftart in PDF, kann nicht in PDF/A konvertiert werden

353

Wörterbuch hat mehr als 4095 Einträge, kann nicht in PDF/A konvertiert werden

354

Die angegebene PDF/A Profil wird in dieser Version nicht unterstützt, kann nicht in PDF/A konvertiert werden

355

Das Zugferd Xml entspricht nicht dem angegebenem Schema

356

Die Seitenauswahl ergab keine passenden Seiten

357

Das Zugferd Xml hat ein inkorrektes Format

358

Das PDF entspricht nicht PDF/A3 Standard, aber ein PDF/A3 ist notwendig um ein Zugferd Xml korrekt einzubetten

359

Ein Zugferd XML ist bereits eingebettet

 

 

361

Es wurde keine CIB renderer Bibliothek gefunden

362

Fehler beim Laden des CIB renderers, es wurde eine falsche Version des CIB renderes gefunden

363

DocMDP Signatur erst ab PDF-1.5 möglich

364

Rendern des Dokuments fehlgeschlagen

365

Diese Betriebssystemversion wird beim CIB renderer nicht unterstützt

366

Eine Seite, die in property BackgroundFilename angegeben wurde, wurde nicht hinzugefügt

367

Fehler bei der PDF/A Konvertierung: Embedded-Dateien sind nicht erlaubt

368

Fehler bei der PDF/A Konvertierung: Passwort ist nicht erlaubt

369

Rendering von Dokumenten mit XFA-Formularen wird nicht unterstuetzt

370

Temporärer Pfad existiert nicht

371

Fehler während der Ausführung des CIB pdfModule

953

Die Bilddatei kann nicht aus der Speicheradresse geladen werden.

1000

Userbreak2


20. Trace

Für unklare Fehlersituationen haben Sie 2 Möglichkeiten eine zusätzliche Protokolldatei zu erzeugen:

  • Sie setzen die Umgebungsvariable CIB_PDFTRACE auf einen Dateinamen und führen den Vorgang aus
  • Sie setzen die Property „Tracefilename“ und vollziehen den Vorgang