CIB pdf toolbox technischer Leitfaden (DE)

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