CIB pdf toolbox technischer Leitfaden (DE)

14. Interne Module im Detail

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.