QuickFix Features

Liste der QuickFix Funktionsbereiche:

  • Sonderfarben
  • Seitenrahmen
  • Seiten skalieren/Seiten drehen/Seiten spiegeln
  • Seiten einfügen/duplizieren/neuanordnen/Seiten entfernen
  • Ebenen (einschließlich Processing Steps Metadaten)
  • Output Intents
  • PDF/VT DPart
  • JavaScript-basierte Konfiguration

Sonderfarben QuickFixes

Sonderfarben umbenennen

Dieses QuickFix Feature benennt einfach Sonderfarben um. Die Verwendung dieses Vorganges in Zusammenhang mit "Aktueller Sonderfarbname" erlaubt flexibles umbennenen – entweder nur für eine spezifische Sonderfarbe oder eine Liste von Namen, wie auch Umbenennungen, die als RegEx ausgedrückt werden können. Die folgende Tabelle stellt dies mit ein paar Beispielen dar.

Operator Aktueller Sonderfarbname
Neuer Sonderfarbname
Effekt
gleich red Logo Rot Wenn es eine Sonderfarbe gibt mit dem Namen "red" wird diese umbenannt zu "Logo Rot"
enthält red Logo Rot Alle Sonderfarben die "rot" enthalten ("Deep red", "Fred", "ingredient", ... ) werden umbenannt zu "Logo Rot".
regex .* Logo $0 Alle Sonderfarben werden umbenannt durch zusätzliches anfügen von "Logo " an den aktuellen Namen.
<p>{
    "quickfixes": [
        {
            "quickfix": "rename_spot",
            "version": "1.0",
            "instructions": [
                {
                    "operator": "equal_to",
                    "old_spot": "Panettone 101 C old",
                    "new_spot": "Panettone 101 C new"
                },
                {
                    "operator": "regex",
                    "old_spot": "(P.*)(\\d*)",
                    "new_spot": "Panettone $2"
                }
            ]
        }
    ]
}</p>

Selbst wenn es mehrere Befehle innerhalb eines QuickFix-Schrittes gibt, so wird jede nur  einmal (wenn überhaupt) "angefasst". Fall wiederholte Modifikationen gewünscht sind (Sonderfarbnamen ändern, dann den bereits veränderten Sonderfarbnamen nochmals ändern), muss der entsprechende Befehl als separate QuickFix-Schritt erstellt werden.

Sonderfarben anpassen (inkl. optionales umbenennen)

Dieses QuickFix ist eine erweiterte Version vom "Sonderfarben umbenennen"-QuickFix. Zusätzlich zum neuen Sonderfarbnamen ist es auch möglich das Erscheinungsbild der Sonderfarbe zu bestimmen, als DeviceCMYK, DeviceRGB, sRGB, Lab D50, Lab D65, sRGB, DeviceGray (oder ein bestimmtes ICC-Profil anzugeben über <ICC-Profil-Pfad>) und entsprechende Zahlwerte der Kanäle.

Falls der neue Sonderfarbname leer gelassen wird, dann ändert sich nur das Erscheinungsbild. Wenn der alternative Farbraum und Farbwerte nicht definiert sind, so wird nur der Name geändert (hat den gleichen Effekt wie das "Sonderfarben umbenennen"-QuickFix).

<p>{
    "quickfixes": [
        {
            "quickfix": "adjust_spot",
            "version": "1.0",
            "instructions": [
                {
                    "operator": "contains",
                    "old_spot": "Rot",
                    "new_spot": "Firmenrot",
                    "alt" : "sRGB",
                    "c0" : 1.0,
                    "c1" : 0.0,
                    "c2" : 0.0
                }
            ]
        }
    ]
}</p>

Sonderfarben zusammenführen

Das "Sonderfarben zusammenführen"-QuickFix unterscheidet sich vom "Sonderfarben umbenennen"-QuickFix insofern, als dass auf beiden Seiten – "Zusammenzuführende Sonderfarben" und "In diese Sonderfarbe zusammenführen" – ein Operator verwendet werden kann. If more than one spot color name matches the condition expressed by the operator combined with the value of "Merge into this spot color", the first occurrence – in the order in which QuickFix analyses the PDF file (which often will not coincide what one would expect from looking at the PDF) – of one of the matching spot colors will become the spot color, into which the other spot colors are merged.

In general, it is recommended to make the combination of operator and "Merge into this spot color" specific enough to identify that one spot color in the PDF into which the other spot colors are to be merged. The combination of operator and "Spot colors to be merged" may be as generic or as specific as makes sense for the given use case.

<p>{
    "quickfixes": [
        {
            "quickfix": "merge_spot",
            "version": "1.0",
            "instructions": [
                {
                    "master_spot": "Firmenrot",
                    "operator1": "equal_to",
                    "slave_spot": "Rot",
                    "operator2": "contains",
                }
            ]
        }
    ]
}</p>

Seitengeometrie-Rahmen (und Seitenbaum)

Seitenbaum anpassen

Dieses QuickFixe werden nur selten erforderlich sein. Es wird immer dann ausgeführt werden, wenn QuickFixes zusammen mit Seitengeometrie-Rahmen aufgeführt werden.

Durch die Flexibilität der PDF-Syntax gibt es zahlreiche Wege Seiten zusammenzufügen und ihre Seitengeometrie-Rahmen (nur eine MediaBox muss definiert sein) innerhalb einer PDF. Das "Seitenbaum anpassen"-QuickFix "normalisiert" die Seitenorganisation in PDFs. Für mehrseitige PDFs stellt es sicher, dass nicht mehr als die Anzahl der Seiten, welche in der "Seitenbaum Knotengöße" vorhanden sind in einem Seitenbaumknoten (dies hat ausschließlich praktische Hintergründe, um Seiten abzufragen aus PDF mit riesiger Anzahl von Seiten). Zusätzlich werden Einträge über Seitengeometrie-Rahmen – welche vorhanden sein könnten bei Seitenbaumknoten und dann angewendet werden auf alle Seiten unterhalb des Knotens – diese wandern dann zu der Seite worauf diese angewendet werden, so das jede Seite für sich selbst steht, bezogen auf die Seitengeometrie-Rahmen (und macht sie somit unabhängig von allen anderen Seiten). Noch einmal, dies ist hauptsächlich erforderlich für schnelle Verarbeitung von seitenbezogenen Informationen.

<p>{
    "quickfixes": [
        {
            "quickfix": "adjust_pages_tree",
            "version": "1.0",
            "instructions": [
                {
                    "pages_size": 100
                }
             ]</p>

MediaBox auf Ursprung setzen

Dieses QuickFix hat eine Besonderheit: Es stellt sicher, dass die untere Linke Ecke der MediaBox sich bei 0:0 befindet. Seitenrahmen Manipulationen können können leist dazu führen, dass dem nicht so ist. Streng genommen ist das nicht wichtig – solange die Breite und Höhe der Seitengeometrie-Rahmen – und Ihre relative Position zueinander – korekt sind, ist alles weitere unwichtig. Die untere linke Ecke der MediaBox könnte sogar sein bei 2000:-900 und es gäbe weiterhin kein Problem. Mit Ausnahme einiger Ausgabe oder Weiterverarbeitungssysteme, besonders in früheren Jahren, die darauf bestanden, das bei allen PDFs die MediaBoxen bei 0:0 beginnen. Diese Systeme haben Probleme mit PDFs, deren MediaBox nicht bei 0:0 beginnt und können zu 'unerwarteten' Ausgabe-Ergebnissen führen.

<p>{
    "quickfixes": [
        {
            "quickfix": "set_mediabox_to_origin",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all"
                }
            ]
        }
    ]
}</p>

Seitendrehung anwenden

Dies wird nur ausgeführt, wenn eine bestimmte Seite einen Rotate entry enthält und dieser Eintrag ungleich Null ist. Für diesen Fall befindet sich der Rotate key zunächst in der Seitenbeschreibung, und anschließend wird dieser Rotate key entfernt. Zusätzlich werden die Seitengeometrie-Rahmen, die Position der Kommentare, wie auch Form Felder entsprechend neu ausgerichtet.

<p>{
    "quickfixes": [
        {
            "quickfix": "apply_rotate_key",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all"
                }
            ]</p>

Seitengeometrie-Rahmen automatisch korrigieren

Funktioniert auf die selbe Art wie die entsprechende Korrektur, mit Ausnahme dass in dem QuickFix es sogar möglich die Seiten festzulegen wessen Seitengeometrie-Rahmen korrigiert weren sollen:

Korrigiert automatisch enthaltene Seitengeometrie-Rahmen (TrimBox oder ArtBox, BleedBox, CropBox, MediaBox – in dieser Reihenfolge), falls erforderlich, auf alle Seiten definiert durch die Seitenauswahl.

Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "auto_correct_page_boxes",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all"
                }
            ]</p>

Seitengeometrie-Rahmen entfernen

Funktioniert auf die selbe Art wie die entsprechende Korrektur:

Entfernt die ausgewählte(n) Seitengeometrie-Rahm(en) von Seiten definiert durch die Seitenauswahl.

<p>{
    "quickfixes": [
        {
            "quickfix": "remove_page_box",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all|splitscheme_expression",
                    "which_box": "CropBox|BleedBox|TrimBox|ArtBox"
                }
            ]</p>

Seitengeometrie-Rahmen setzen

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Setzt die Seitengeometrie-Rahmen relativ zu existierenden Seitengeometrie-Rahmen neu oder auf absolute Koordinaten.

<p>{
    "quickfixes": [
        {
            "quickfix": "set_page_box",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "which_box": "CropBox",
                    "from_box_or_absolute":  "BleedBox",
                    "left": 5.0,
                    "bottom": 5.0,
                    "right": 5.0,
                    "top": 05.0,
                    "unit": "mm",
                    "when": "always"
                }
             ]</p>

Seitengeometrie-Rahmen setzen (Ausmaße)

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Setzt die Seitengeometrie-Rahmen auf festgelegte Seitengeometrie-Rahmen-Abmessungen.

<p>{
    "quickfixes": [
        {
            "quickfix": "set_page_box_by_dimensions",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "which_box": "CropBox",
                    "relative_to": "center",
                    "from_box_or_origin":  "TrimBox",
                    "hor_offset": 0.0,
                    "vert_offset": 0.0,
                    "width": 210.0,
                    "width_is_relative": false,
                    "height": 297.0,
                    "height_is_relative": false,
                    "unit": "mm",
                    "when": "always"
                }
             ]</p>

Seiten skalieren, drehen oder spiegeln

Seiten skalieren

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Skaliert alle Seiten der PDF definiert durch die Seitenauswahl. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "scale_pages",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "short_edge": 210,
                    "long_edge": 297,
                    "unit": "percent|mm",
                    "page_scale_mode": "fit_from_inside_add_white_space"
                }
            ]</p>

Nur Inhalt skalieren

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Skaliert den Seiteninhalt auf den gewünschten Prozentwert ohne die Seitendimensionen zu verändern aller Seiten definiert durch die Seitenauswahl.  Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "scale_page_content_only",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "relative_to": "center",
                    "scale_to_percent": 110
                }
            ]</p>

Seiten vergrößern

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Vergrößert den Seitenbereich ohne den Seiteninhalt zu verändern aller Seiten definiert durch die Seitenauswahl.  Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "enlarge_pages",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "which_edges": "top_and_bottom",
                    "enlarge_by": 10,
                    "unit": "mm"
                }
            ]</p>

Seiten drehen

Funktioniert meist auf die selbe Art wie die entsprechende Korrektur:

Dreht Seiten definiert durch die Seitenauswahl und den gewählten Winkel. Wenn ein Seitenrotations Parameter vorhanden ist wird dieser angewendet.  Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "rotate_pages",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "rotate_by": -90
                }
            ]</p>

Seiten spiegeln

Funktioniert auf die selbe Art wie die entsprechende Korrektur:

Spiegelt die Seiten horizontal oder vertikal für alle Seiten definiert durch die Seitenauswahl. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.

<p>{
    "quickfixes": [
        {
            "quickfix": "flip_pages",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "even",
                    "flip_direction": "horizontally"
                }
            ]</p>

Seiten einfügen, duplizieren oder entfernen

Leere Seite einfügen

Funktioniert auf die selbe Art wie die Korrektur "Seiten einfügen":

Fügt eine leere Seite vor oder nach Seite(n) definiert durch die Seitenauswahl. Die Seitenrahmen werden übernommen von den vorherigen oder nachfolgenden Seiten, wo die leere Seite eingefügt wird.

<p>{
    "quickfixes": [
        {
            "quickfix": "insert_empty_page",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "all",
                    "where": "before"
                }
            ]</p>

Seiten duplizieren

Dupliziert die Seite(n) definiert durch die Seitenauswahl.

<p>{
    "quickfixes": [
        {
            "quickfix": "duplicate_page",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "1,-1"
                }
            ]</p>

Seiten entfernen

Entfernt die Seite(n) definiert durch die Seitenauswahl.

<p>{
    "quickfixes": [
        {
            "quickfix": "remove_page",
            "version": "1.0",
            "instructions": [
                {
                    "page_selector": "2--1"
                }
            ]</p>

Ebenen (einschließlich Processing Steps Metadaten)

Ebenensichtbarkeit setzen

Diese QuickFix ist ähnlich zu der Korrektur "Setze Ebene standardmäßig auf An/Aus".

Es setzt die standardmäßige Sichtbarkeit einer Ebene / von Ebenen auf sichtbar oder nicht sichtbar.

Wenn "Interpretiere Ebenennamen als Processing Steps Metadaten" aktiviert ist, werdend ie Namen der Ebene ignoriert, und stattdessen Ihre Processing Steps Metadaten verwendet um zu ermitteln ob ihre Sichtbarkeit Ein/ Aus gestellt werden soll. Processing Steps Metadaten werden immer gespeichert in Kombination von Gruppe und Typ:

  • die Syntax zum Schreiben der Processing Steps Metadata Werte innerhalb der QuickFix Konfiguration lautet: "<Processing Steps Group>:<Processing Steps Type>"
  • zum Beispiel: "Structural:Bleed"
<p>{
    "quickfixes": [
        {
            "quickfix": "set_ocg_visibility",
            "version": "1.0",
            "instructions": [
                {
                    "operator": "contains",
                    "ocg_name": "Die",
                    "interpret_ocg_name_as_processsing_steps_name: false,
                    "visibility" : "on"
                },
                {
                    "operator": "contains",
                    "ocg_name": "Cut",
                    "interpret_ocg_name_as_processsing_steps_name: false,
                    "visibility" : "on"
                }
            ]</p>

Processing Steps Metadaten für Ebene setzen

Dieses QuickFix fügt Processing Steps Metadaten zu einer Ebene / zu mehreren Ebenen. Bereits vorhandene Processing Steps Metadaten werden dabei überschrieben.

<p>{
    "quickfixes": [
        {
            "quickfix": "set_processing_steps_metadata_for_ocg",
            "version": "1.0",
            "instructions": [
                {
                    "operator": "conntains",
                    "ocg_name": "Die",
                    "processing_steps_group" : "Structural",
                    "processing_steps_type" : "Cutting"
                },
                {
                    "operator": "conntains",
                    "ocg_name": "Stanz",
                    "processing_steps_group" : "Structural",
                    "processing_steps_type" : "Cutting"
                },
                {
                    "operator": "conntains",
                    "ocg_name": "Cut",
                    "processing_steps_group" : "Structural",
                    "processing_steps_type" : "Cutting"
                },
                {
                    "operator": "conntains",
                    "ocg_name": "poinç",
                    "processing_steps_group" : "Structural",
                    "processing_steps_type" : "Cutting"
                }
            ]</p>

Output Intents

Output Intent einbetten

Dieses QuickFix bettet den ausgewählten Output Intent ein. Es ist möglich zwishen verschiedenen PDF-Standards zu wählen – etwa PDF/X, PDF/A usw. – als Output Intent (diese Standards schreiben vor, dass der Output Intent der Selbe ist für alle Standards, wofür die PDF angibt konform zu sein, somit könnte ein einzelner eingebetteter Output Intent sogar mehr als einen PDF Standard innerhalb der selben PDF-Datei mit sich führen).

<p>{
    "quickfixes": [
        {
            "quickfix": "embed_outputintent",
            "version": "1.0",
            "instructions": [
                {
                    "outputintent_name": "PSO Coated v3 (ECI)",
                    "outputintent_type" : "AX",
                    "retain_existing_outputintent" : false
                }
            ]</p>

Alle Output Intents entfernen

Dieses QuickFix entfernt all Output Intents aus der PDF-Datei.

<p>{
    "quickfixes": [
        {
            "quickfix": "remove_all_outputintents",
            "version": "1.0",
            "instructions": [
            ]</p>

PDF/VT DPart

DPart einfügen

Dieses QuickFix fügt einen kleinen Teil der DPart-Daten in die PDF-Datei ein. Im Wesentlichen, erzeugt es logische Gruppen in Form von Seitenbereichen. Durch Verwendung der Auswahl-Syntax, ist so eine beträchtliche Anzahl möglich Seitenbereiche zu definieren:

  • ausdrucksweise, z.B. 1-4, 5-8, 9-12 – erzeugt drei Seitenbereiche, funktionert nur mit einer vorhersehbaren Anzahl von Seiten bei PDFs, die exakt 12 Seiten besitzt; jede Seite die darüberhinaus geht gehört bereits zu einem neuen Seitenbereich; für PDFs mit weniger als 12 Seiten, eine oder sogar mehrere Seitenbereiche würden 'unvollständig' sein oder sogar komplett fehlen.
  • Regelbasiert, z.B. 4* – erzeugt einen Seitenbereich von Blöcken zu je 4 Seiten
  • Alle Arten von noch komplexeren Ausdrücken...

For details see the article Page selection.

The entry for Node name expressed the meaning of the grouped page ranges. This could be arbitrary parts of a book, account statements for a bank's customers, photo books, ...

Where DPPart injection is to be dynamically based upon a PDF's characteristics or content, execution of a QuickCheck or a regular check , in combination with some JavaScript, inside a Process Plan, and before execution of a QuickFix with DPart injection, makes it possible to address more advanced scenarios in a very powerful manner. An example is provided in the form of the Process Plan "Create DPart record information from headings" which ships with pdfToolbox 12.

JavaScript-basierte Konfiguration

Diese Konfiguration muss ein JavaScript-Objekt zurückgeben, das eine JSON-Serialisierung gemäß der Spezifikation für die QuickFix-Funktionen in der oben dokumentierten Form aufweist.

let cfg = 
{
	"quickfixes" : 
	[
		{
			"instructions" : 
			[
				{
					"pages_size" : 10
				}
			],
			"quickfix" : "adjust_pages_tree",
			"version" : "1.0"
		}
	]
};
cfg;

0 Kommentare

Geben SIe Ihren Kommentar ein

E-Mail senden, wenn jemand auf diesen Kommentar antwortet