Form XObjekte auf Ebenen verteilen

Form XObjects in einer PDF-Datei werden verwendet, um Seiteninhalte zu kapseln. Dies ist nützlich, wenn z.B. neue Inhalte wie ein Stempel zur PDF-Datei hinzugefügt werden, beim Ausschießen, wenn Seiten auf einem Druckbogen platziert werden, oder wenn derselbe Inhalt mehrfach verwendet wird.

Der letzte Anwendungsfall hat viel mit dem Druck variabler Daten zu tun: Wenn statischer (wiederverwendeter) Inhalt in einem Form XObject vorliegt, das bei jeder Verwendung referenziert wird, muss die Output-Engine (RIP, DFE) ihn nur einmal verarbeiten und kann ihn für das Rendering wiederverwenden (Caching), was bedeutet, dass sie viel schneller läuft. Ist dies nicht der Fall, kann die Ausgabe erheblich verlangsamt werden. Wenn das Caching reibungslos funktioniert, dauert die Verarbeitung der ersten Instanz einer Seite so lange wie nötig, aber die entsprechenden Folgeseiten werden viel schneller verarbeitet. Aber auch bei wiederverwendeten Inhalten in einem Form XObject kann es vorkommen, dass sie nicht gecached werden können, z.B. wenn sie über Transparenz mit anderen Inhalten interagieren.

Um zu analysieren, ob eine VDP (variable data printing) PDF-Datei möglicherweise Caching-Probleme aufweist, wäre ein Tool hilfreich, mit dem die Form XObject-Struktur in einer PDF-Datei visualisiert und - noch besser - modifiziert werden kann.

Form XObjekte auf Ebenen verteilen

In pdfToolbox können Sie Ebenen verwenden, um die Struktur von Form XObjekten in einer PDF-Datei zu visualisieren. Es gibt drei Möglichkeiten, auf diese Funktion zuzugreifen:

Ebenen-Explorer

Der Ebenen-Explorer befindet sich im Menü „Werkzeuge“. Wird eine PDF-Datei geöffnet, die noch keine Ebenen enthält, wird der Punkt "XObjekte auf Ebenen" angezeigt, der dann die Switchboard-Aktion "XObjekte auf Ebenen" öffnet:

XObjekte auf Ebenen Switchboard-Aktion (Gruppe Ebenen)

Durch Klicken auf „Ausführen“ werden die Form XObjekte der aktuellen PDF-Datei auf neue Ebenen verteilt und es wird der Ebenen-Explorer geöffnet.

"Form XObjekte auf Ebenen verteilen" Quick Fix

Wenn Sie Form XObjekte mit pdfToolbox CLI, SDK oder Server auf Ebenen verteilen wollen, können Sie das Quick Fix "Form XObjekte auf Ebenen verteilen" verwenden.

Form XObjekt-Struktur in Ebenen-Explorer untersuchen

Nehmen wir als Beispiel eine PDF-Datei mit 10 Seiten. Diese PDF-Datei wurde von den PDF/VT Beispieldateien abgeleitet.

Nachdem Sie die Form XObjekte in diesem PDF auf Ebenen verteilt haben, sieht der Ebenen-Explorer wie folgt aus:

Die Ebenenstruktur visualisiert die Form XObjekt Struktur

Die PDF-Datei hat jetzt 8 neue Ebenen.

In der PDF-Datei zeigen rote Rechtecke die Position der Form XObjekte an. Diese roten Markierungen gehören alle zur neuen Ebene „Form XObject BBoxes“. Ein rotes Rechteck ist nur sichtbar, wenn diese Ebene aktiv ist und das entsprechende Form XObjekt, zu dem es gehört, auch sichtbar ist.

Die anderen Ebenen sagen geben über hren Ebenenname weitere Auskunft: Der Name beginnt mit einer Indexnummer. Er gibt auch an, auf wie vielen Seiten sie (wieder)verwendet wird und ob sie untergeordnete Ebenen (child layer) hat, und wie viele das sind.

Form XObjekte können andere Form XObjekte enthalten, wodurch eine Hierarchie entsteht. Die Ebenen werden in einer Struktur erstellt, die diese Hierarchie widerspiegelt.

Eine untergeordnete Ebene ist nur sichtbar, wenn alle ihre übergeordneten Ebenen sichtbar sind.

Analyse

Schaltet man die Ebene "01-formX on 10 pages, children:1" aus, so sieht man ein zusätzliches, etwas kleineres Layout, das vollständig von den sichtbaren Objekten verdeckt wird. Offensichtlich ein Überbleibsel des Designers?

Das Ausgabe-RIP muss dieses zusätzliche Layout trotzdem verarbeiten, was das Rendern verlangsamt. In unserem nicht sehr komplexen 10-Seiten-PDF ist das kein großes Problem, aber bei einem PDF mit zehntausenden von Seiten und wenn z.B. Transparenz verwendet wird, kann das Rendering deutlich länger dauern.

In jedem Fall wäre es gut, die versteckten Inhalte zu entfernen oder zu deaktivieren.

Optimieren einer PDF-Datei für das RIP

Sie können nun das verdeckte XObjekt entfernen, indem Sie es im Ebenen-Explorer auswählen und auf das rote „-“-Symbol klicken.

Es wird ein Dialog angezeigt, in dem Sie die Ebene mit ihrem Inhalt entfernen können.

Dieser Ansatz funktioniert gut, hätte aber in einer „echten“ VDP-Datei mit Tausenden von Verweisen auf dieses Form XObjekt einen entscheidenden Nachteil: Alle Content Streams, die auf dieses Objekt verweisen, müssten geändert werden, was sehr lange dauern kann.

Eine bessere Möglichkeit ist es, die ausgeblendete Ebene zunächst unsichtbar zu machen, so dass sie (normalerweise) vom RIP ignoriert wird. Sie können die anfängliche Sichtbarkeit ändern, indem Sie alle Ebenen, die unsichtbar sein sollen, deaktivieren und dann die Schaltfläche „Sichtbarkeit speichern“ am unteren Rand des Ebenen-Explorers verwenden.

Dadurch wird ein zusätzlicher Dialog angezeigt (den Sie für die Zukunft abschalten können, wenn Sie ihn verstanden haben). Danach können Sie das geänderte Ergebnis speichern. Da nur ein Parameter für die Ebene geändert werden muss, ist dies ein sehr schneller Vorgang.