Quick Fix Features
Dieser Artikel gibt einen Überblick über alle in pdfToolbox enthaltenen Quick Fixes.
Da ein Quick Fix auch auf der Kommandozeile ausgeführt werden kann, indem eine JSON-Datei-basierte Quick Fix-Konfiguration verwendet wird, enthält dieser Artikel auch JSON-Serialisierungen für jedes Quick Fix. Detaillierte Informationen zur Verwendung von Quick Fix auf der Kommandozeile finden Sie hier.
Darüber hinaus können die JSON-Serialisierungen auch im "JavaScript-basierte Konfiguration" Quick Fix verwendet werden. Wie das geht, können Sie hier nachlesen.
Liste der QuickFix Funktionsbereiche:
- Sonderfarben
- Seitengeometrie-Rahmen
- Seiten skalieren/drehen/spiegeln
- Seiten einfügen/duplizieren/entfernen/invertieren/neu anordnen
- Ebenen (einschließlich Processing Steps Metadaten)
- Output Intents
- PDF neu abspeichern
- VDP, PDF/VT DPart
- Text suchen und ersetzten
- PDF-interne Namen nach UTF-8 konvertieren
- JavaScript basierte Konfiguration
Sonderfarben Quick Fixes
Sonderfarben umbenennen
Dieses Quick Fix Feature benennt Sonderfarben um. Die Verwendung dieses Vorgangs in Zusammenhang mit "Aktueller Sonderfarbname" erlaubt flexibles umbenennen – entweder nur für eine spezifische Sonderfarbe oder eine Liste von Namen, oder eine Umbenennungen, die als RegEx ausgedrückt werden können. Die folgende Tabelle veranschaulicht dies anhand einiger Beispiele.
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 "red" 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. |
{
"quickfixes" : [
{
"quickfix" : "rename_spot",
"version" : "1.0"
"instructions" : [
{
"new_spot" : "Logo Red",
"old_spot" : "red",
"operator" : "contains"
}
]
}
]
}
// "operator" : "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
Selbst wenn es mehrere Befehle innerhalb eines QuickFix-Schrittes gibt, so wird jeder nur einmal (wenn überhaupt) "angefasst". Falls wiederholte Modifikationen gewünscht sind (Sonderfarbnamen ändern, dann den bereits veränderten Sonderfarbnamen nochmals ändern), muss der entsprechende Befehl als separater Quick Fix-Schritt erstellt werden.
Sonderfarben anpassen (inkl. optionales umbenennen)
Dieses Quick Fix ist eine erweiterte Version vom "Sonderfarben umbenennen"-Quick Fix. 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>) mit entsprechenden Zahlenwerten für die Kanäle.
Falls der neue Sonderfarbname leer gelassen wird, dann ändert sich nur das Erscheinungsbild. Wenn der alternative Farbraum und die Farbwerte nicht definiert sind, so wird nur der Name geändert (hat den gleichen Effekt wie das "Sonderfarben umbenennen"-Quick Fix).
{
"quickfixes": [
{
"quickfix": "adjust_spot",
"version": "1.0",
"instructions": [
{
"operator": "contains",
"old_spot": "red",
"new_spot": "Company Red",
"alt" : "sRGB",
"c0" : 1.0,
"c1" : 0.0,
"c2" : 0.0,
"c3" : 0.0
}
]
}
]
}
// "operator": "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
// "alt": "DeviceGray|DeviceRGB|DeviceCMYK|Lab_D50|Lab_D65|sRGB|<icc-profil-file-path>"
Sonderfarben zusammenführen
Das "Sonderfarben zusammenführen"-Quick Fix unterscheidet sich vom "Sonderfarben umbenennen"-Quick Fix insofern, als dass auf beiden Seiten – "In diese Sonderfarbe zusammenführen" und "Zusammenführende Sonderfarben" – ein Operator verwendet werden kann.
Im Allgemeinen wird empfohlen, die Kombination aus dem Operator und "In diese Schmuckfarbe zusammenführen" so spezifisch wie möglich zu wählen, um die richtige Sonderfarbe in der PDF-Datei zu identifizieren, in die die anderen Sonderfarben zusammengeführt werden sollen. Der Grund dafür ist, dass wenn mehr als eine Sonderfarbe auf die “In diese Sonderfarbe zusammenführen” Kondition zutrifft, die Quick Fix Analyse die Sonderfarbe auswählt, welche sie zuerst identifiziert. Somit besteht hier die Gefahr, dass eine falsche Sonderfarbe als Referenz ausgewählt wird, in welche dann die anderen Sonderfarben zusammengefügt werden.
{
"quickfixes" :
[
{
"instructions" :
[
{
"master_spot" : "Firmenrot",
"operator1" : "equal_to",
"operator2" : "contains",
"slave_spot" : "Rot"
}
],
"quickfix" : "merge_spot",
"version" : "1.0"
}
]
}
// "operator1": "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
// "operator2": "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
Seitengeometrie-Rahmen (und Seitenbaum)
Seitenbaum anpassen
Dieses Quick Fix wird nur selten erforderlich sein. Es wird immer dann ausgeführt, wenn Quick Fixes zusammen mit Seitengeometrie-Rahmen aufgeführt werden.
Aufgrund der Flexibilität der PDF-Syntax gibt es zahlreiche Möglichkeiten, Seiten und die dazugehörigen Seitengeometrierahmen (mindestens eine MediaBox muss immer definiert werden) in ein PDF zu integrieren. Das "Seitenbaum anpassen"-Quick Fix "normalisiert" die Seitenorganisation in PDFs. Bei mehrseitigen PDFs stellt es sicher, dass nicht mehr als die in "Seitenbaum Knotengröße" angegebene Anzahl von Seiten in einem Seitenbaumknoten vorhanden sind (dies hat nur praktische Auswirkungen auf das Abrufen von Seiten in PDFs mit einer großen Anzahl von Seiten).
Darüber hinaus werden Einträge für Seitengeometrie-Rahmen - die in zwischengeschalteten Seitenbaumknoten vorhanden sein könnten und dann für alle Seiten unter diesem Knoten gelten würden - auf die Seite verschoben für die sie gelten, so dass jede Seite in Bezug auf Seitengeometrie-Rahmen auf eigenen Füßen steht (und sie unabhängig von allen anderen Seiten macht). Noch einmal, dies ist hauptsächlich für eine schnelle Verarbeitung von seitenbezogenen Informationen erforderlich.
{
"quickfixes": [
{
"quickfix": "adjust_pages_tree",
"version": "1.0",
"instructions": [
{
"pages_size": 100
}
]
}
]
}
MediaBox auf Ursprung setzen
Dieses Quick Fix hat eine Besonderheit: Es stellt sicher, dass sich die untere linke Ecke der MediaBox bei 0:0 befindet. Seitenrahmen Manipulationen können leicht 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 bei 2000:-900 sein und es gäbe weiterhin kein Problem. Die Ausnahme liegt bei einigen Ausgabe- oder Weiterverarbeitungssystemen, besonders in früheren Jahren, die darauf bestanden, dass 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.
{
"quickfixes": [
{
"quickfix": "set_mediabox_to_origin",
"version": "1.0",
"instructions": [
{
"page_selector": "all"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
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.
{
"quickfixes": [
{
"quickfix": "apply_rotate_key",
"version": "1.0",
"instructions": [
{
"page_selector": "all"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seitengeometrie-Rahmen automatisch korrigieren
In diesem Quick Fix ist es möglich, die Seiten zu definieren, deren Seitengeometrie-Rahmen automatisch korrigiert werden sollen:
Korrigiert automatisch enthaltene Seitengeometrie-Rahmen (TrimBox oder ArtBox, BleedBox, CropBox, MediaBox – in dieser Reihenfolge), falls erforderlich, auf allen Seiten definiert durch die Seitenauswahl.
Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
{
"quickfixes": [
{
"quickfix": "auto_correct_page_boxes",
"version": "1.0",
"instructions": [
{
"page_selector": "all"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seitengeometrie-Rahmen entfernen
Entfernt den/die ausgewählten Seitengeometrie-Rahmen von der Seiten (definiert durch die Seitenauswahl).
{
"quickfixes": [
{
"quickfix": "remove_page_box",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"which_box": "ArtBox"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "which_box": "CropBox|BleedBox|TrimBox|ArtBox">
Seitengeometrie-Rahmen setzen
Legt Seitengeometrie-Rahmen entweder relativ zu einem vorhandenen Seitengeometrie-Rahmen oder auf absolute Koordinaten fest.
{
"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": 5.0,
"unit": "mm",
"when": "always"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "which_box": "CropBox|BleedBox|TrimBox|ArtBox"
// "from_box_or_absolute": "CropBox|BleedBox|TrimBox|ArtBox|absolute"
Seitengeometrie-Rahmen setzen (Ausmaße)
Setzt die Seitengeometrie-Rahmen auf festgelegte Seitengeometrie-Rahmen-Abmessungen.
{
"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"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "which_box": "CropBox|BleedBox|TrimBox|ArtBox"
// "relative_to": "lower_left_corner|left_center|upper_left_corner|top_center|lower_right_corner|right_center|upper_right_corner|upper_right_corner|bottom_center|center"
// "from_box_or_origin": "CropBox|BleedBox|TrimBox|ArtBox|origin"
Seiten skalieren, drehen oder spiegeln
Seiten skalieren
Skaliert alle Seiten der PDF, welche über die Seitenauswahl definiert wurden. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
{
"quickfixes": [
{
"quickfix": "scale_pages",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"short_edge": 210,
"long_edge": 297,
"unit": "mm",
"page_scale_mode": "fit_from_inside_add_white_space"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "page_scale_mode": "fit_from_inside_add_white_space|fit_from_inside_scale_page_edge_proportionally|fit_from_outside_cut_page|fit_from_outside_scale_page_edge_proportionally|stretch_to_fill"
Nur Inhalt skalieren
Skaliert den Seiteninhalt aller Seiten, welche über die Seitenauswahl definiert wurden, auf den gewünschten Prozentwert ohne die Seitendimensionen zu verändern. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
{
"quickfixes": [
{
"quickfix": "scale_page_content_only",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"relative_to": "center",
"scale_to_percent": 110
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "relative_to": "lower_left_corner|left_center|upper_left_corner|top_center|lower_right_corner|right_center|upper_right_corner|upper_right_corner|bottom_center|center"
Seiten vergrößern
Vergrößert den Seitenbereich aller Seiten, welche über die Seitenauswahl definiert wurden, ohne den Seiteninhalt zu verändern. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
{
"quickfixes": [
{
"quickfix": "enlarge_pages",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"which_edges": "top_and_bottom",
"enlarge_by": 10,
"unit": "mm"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "which_edges": "left|bottom|right|top|left_and_right|top_and_bottom|all"
Seiten drehen
Dreht alle Seiten, welche über die Seitenauswahl definiert wurden, um den angegebenen Winkel. Wenn es einen Parameter für die Seitendrehung gibt, wird dieser angewendet. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
{
"quickfixes": [
{
"quickfix": "rotate_pages",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"rotate_by": -90
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seiten spiegeln
Spiegelt alle Seiten, welche über die Seitenauswahl definiert wurden, horizontal oder vertikal. Zusätzlich wird die untere linke Ecke der MediaBox auf den Ursprung gesetzt.
let cfg =
{
"quickfixes": [
{
"quickfix": "flip_pages",
"version": "1.0",
"instructions": [
{
"page_selector": "even",
"flip_direction": "horizontally"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>",
// "flip_direction": "horizontally|vertically"
Seiten einfügen, duplizieren, entfernen, invertieren, neu anordnen
Leere Seite einfügen
Fügt eine leere Seite vor oder nach den Seiten ein, die durch die Seitenauswahl definiert sind. Die Seitengeometrie-Rahmen werden übernommen von den vorherigen oder nachfolgenden Seiten, wo die leere Seite eingefügt wird.
{
"quickfixes": [
{
"quickfix": "insert_empty_page",
"version": "1.0",
"instructions": [
{
"page_selector": "all",
"where": "after"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>",
// "where": "before|after"
Seiten duplizieren
Dupliziert die Seite(n), welche durch die Seitenauswahl definiert wurden.
{
"quickfixes": [
{
"quickfix": "duplicate_page",
"version": "1.0",
"instructions": [
{
"page_selector": "1,-1"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seiten entfernen
Entfernt die Seite(n), welche durch die Seitenauswahl definiert wurden.
{
"quickfixes": [
{
"quickfix": "remove_page",
"version": "1.0",
"instructions": [
{
"page_selector": "2--1"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seitenreihenfolge invertieren
Dieses Quick Fix kehrt die Seitenreihenfolge entsprechend dem definierten 'Seitenselektor' um, z.B. alle Seiten oder nur gerade Seiten usw.
Beispiel: Ein einfaches 10-seitiges PDF mit dem Seitenselektor "1-5" hat danach eine Seitenreihenfolge von: 5,4,3,2,1,6,7,8,9,10.
Weitere Informationen finden Sie hier.
{
"quickfixes": [
{
"quickfix": "invert_pages",
"version": "1.0",
"instructions": [
{
"page_selector": "1-5"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Seiten neu anordnen
Mit diesem Quick Fix können Sie die Seiten in einem Dokument anhand der angegebenen Attribute neu anordnen:
- Seitenselektor, der eine Liste sein kann, z.B. 1,2,3 oder ein einfacher Ausdruck usw.
- Relativ zu (ersten/letzten Seite in PDF/Auswahl)
- Seitenversatz, d.h. der Ankerpunkt, um den die ausgewählten Seiten neu sortiert werden sollen
- Einfügen (vor oder nach)
- Nicht aufeinanderfolgende Auswahlen, entweder
- als aufeinanderfolgende Seiten einfügen oder
- Seitenstruktur verschieben
Weitere Informationen finden Sie hier.
{
"quickfixes" :
[
{
"instructions" :
[
{
"insert_mode" : "shift_pages",
"insert_pages" : "insert_before",
"page_offset" : -1,
"page_selector" : "*3(3)",
"relative_to_page" : "first_page"
}
],
"quickfix" : "reorder_pages",
"version" : "1.0"
}
]
}
// "insert_mode": "insert_consecutive|shift_pages"
// "insert_pages": "insert_before|insert_after"
// "page_selector": "all|even|odd|<splitscheme_expression>",
// "relative_to_page": "first_page|first_sel_page|last_sel_page|last_page"
Ebenen (einschließlich Processing Steps Metadaten)
Ebenensichtbarkeit setzen
Dieses Quick Fix setzt die standardmäßige Sichtbarkeit einer Ebene / mehrerer Ebenen auf sichtbar oder nicht sichtbar.
Wenn "Interpretiere Ebenennamen als Processing Steps Metadaten" aktiviert ist, werden die 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"
{
"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"
}
]
}
]
}
// "operator": "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
// "interpret_ocg_name_as_processsing_steps_name": true|false <optional: default false>
// "visibility": "on|off"
Processing Steps Metadaten für Ebene setzen
Dieses Quick Fix fügt Processing Steps Metadaten zu einer Ebene / zu mehreren Ebenen hinzu. Bereits vorhandene Processing Steps Metadaten werden dabei überschrieben.
{
"quickfixes" :
[
{
"instructions" :
[
{
"ocg_name" : "Die",
"operator" : "contains",
"processing_steps_group" : "Structural",
"processing_steps_type" : "Cutting"
},
{
"ocg_name" : "Cut",
"operator" : "contains",
"processing_steps_group" : "Structural",
"processing_steps_type" : "Cutting"
},
{
"ocg_name" : "Stanz",
"operator" : "contains",
"processing_steps_group" : "Structural",
"processing_steps_type" : "Cutting"
},
{
"ocg_name" : "poinc",
"operator" : "contains",
"processing_steps_group" : "Structural",
"processing_steps_type" : "Cutting"
}
],
"quickfix" : "set_processing_steps_metadata_for_ocg",
"version" : "1.0"
}
]
}
// "operator": "regex|begins_with|contains|does_not_begin_with|does_not_contain|does_not_end_with|ends_with|equal_to|is_contained_in|is_not_contained_in|unequal_to"
// "processing_steps_group": "<custom>|Structural|Dimensions|Braille|Legend|Positions|White|Varnish"
// "processing_steps_type": "<custom>|Cutting|PartialCutting|ReversePartialCutting|Creasing|ReverseCreasing|CuttingCreasing|ReverseCuttingCreasing|PartialCuttingCreasing|ReversePartialCuttingCreasing|Drilling|Gluing|FoilStamping|ColdFoilStamping|Embossing|Debossing|Perforating|Bleed|VarnishFree|InkFree|InkVarnishFree|Folding|Punching|Stapling|Hologram|Barcode|ContentArea|CodingMarking|Imprinting
Output Intents
Output Intent einbetten
Dieses Quick Fix bettet den ausgewählten Output Intent ein. Es ist möglich zwischen verschiedenen PDF-Standards zu wählen – etwa PDF/X, PDF/A usw. – als Output Intent (Diese Standards schreiben vor, dass der Output Intent für alle Standards, zu denen eine PDF-Datei Konformität beansprucht, derselbe sein muss, so dass ein einzelner eingebettete Output Intent mehr als einen PDF-Standard in derselben PDF-Datei bedienen kann).
{
"quickfixes": [
{
"quickfix": "embed_outputintent",
"version": "1.0",
"instructions": [
{
"outputintent_name": "PSO Coated v3 (ECI)",
"outputintent_type" : "AX",
"retain_existing_outputintent" : false
}
]
}
]
}
// "outputintent_type": "A|E|X|AE|AX|EX|AEX|X5n"
// "retain_existing_outputintent": true|false
Output Intent mit spezifizierten Parametern einbetten
Dieses Quick Fix bettet einen PDF/X-, PDF/A- und/oder PDF/E-Output Intent mit allen Parametern wie dem ICC-Farbprofil (z.B. CoatedFOGRA27.icc) oder einem registrierter Output Intent Name (Output condition identifier), der lediglich eine Beschreibung der beabsichtigten Druckspezifikationen ist (z.B. FOGRA27).
{
"quickfixes" :
[
{
"instructions" :
[
{
"outputintent_condition" : "",
"outputintent_condition_identifier" : "sRGB",
"outputintent_filepath_icc" : "/var/folders/lr/0vnqj68514j5w4t1pbd9jz840000gn/T/com.callassoftware.pdfToolboxDT/6642/QuickFix-hNpGsh/Adobe RGB (1998).icc",
"outputintent_info" : "Creator: HP",
"outputintent_name_icc" : "Adobe RGB (1998)",
"outputintent_registry" : "http://www.color.org",
"outputintent_type" : "A",
"outputintent_url_referenced_icc" : "",
"retain_existing_outputintent" : false
}
],
"quickfix" : "embed_outputintent_with_params",
"version" : "1.0"
}
]
}
// "outputintent_type": "A|E|X|AE|AX|EX|AEX|X5n"
// "retain_existing_outputintent": true|false
Output Intent auf Seitenebene einbetten
Dieses Quick Fix bettet den angegebenen Output Intent auf Seitenebene ein (mittels Seitenauswahl). Es ist möglich, zwischen verschiedenen PDF-Standards - wie PDF/X, PDF/A usw.
{
"quickfixes": [
{
"quickfix": "embed_page_outputintent",
"version": "1.0",
"instructions": [
{
"outputintent_name": "PSO Coated v3 (ECI)",
"outputintent_type" : "AX",
"retain_existing_outputintent" : false,
"page_selector": "odd"
}
]
}
]
}
// "outputintent_type": "A|E|X|AE|AX|EX|AEX|X5n"
// "retain_existing_outputintent": true|false
// "page_selector": "all|even|odd|<splitscheme_expression>"
Output Intent auf Seitenebene mit spezifizierten Parametern
Dieses Quick Fix bettet einen PDF/X-, PDF/A- und/oder PDF/E-Output Intent mit allen Parametern wie dem ICC-Farbprofil (z.B. CoatedFOGRA27.icc) oder einem registrierter Output Intent Name (Output condition identifier), der lediglich eine Beschreibung der beabsichtigten Druckspezifikationen ist (z.B. FOGRA27), auf Seitenebene ein (mittels Seitenauswahl).
{
"quickfixes" :
[
{
"instructions" :
[
{
"outputintent_condition" : "",
"outputintent_condition_identifier" : "sRGB",
"outputintent_filepath_icc" : "/var/folders/lr/0vnqj68514j5w4t1pbd9jz840000gn/T/com.callassoftware.pdfToolboxDT/6642/QuickFix-ZmSrt7/Adobe RGB (1998).icc",
"outputintent_info" : "Creator: HP",
"outputintent_name_icc" : "Adobe RGB (1998)",
"outputintent_registry" : "http://www.color.org",
"outputintent_type" : "A",
"outputintent_url_referenced_icc" : "",
"page_selector" : "odd",
"retain_existing_outputintent" : false
}
],
"quickfix" : "embed_page_outputintent_with_params",
"version" : "1.0"
}
]
}
// "outputintent_type": "A|E|X|AE|AX|EX|AEX|X5n"
// "retain_existing_outputintent": true|false
// "page_selector": "all|even|odd|<splitscheme_expression>"
Alle Output Intents entfernen
Dieses QuickFix entfernt all Output Intents aus der PDF-Datei.
{
"quickfixes" :
[
{
"instructions" : [ {} ],
"quickfix" : "remove_outputintents",
"version" : "1.0"
}
]
}
Output Intents auf Seitenebene entfernen
Dieses QuickFix entfernt all Output Intents auf Seitenebene aus der PDF-Datei.
{
"quickfixes" :
[
{
"quickfix": "remove_page_outputintents",
"version": "1.0",
"instructions":
[
{
"page_selector": "odd"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
PDF neu abspeichern
Speichert das PDF Dokument neu ab, indem es die aktuelle Version des PDF Dokuments beibehält. Alternativ kann eine anderen Dokument-Version ausgewählt werden.
{
"quickfixes" :
[
{
"quickfix": "fullsave",
"version": "1.0",
"instructions":
[
{
"pdf_version": "retain"
}
]
}
]
}
// "pdf_version": "retain|1.4|1.5|1.6|1.7|2.0"
VDP, PDF/VT DPart
DPart einfügen
Dieses Quick Fix fügt sehr einfache DPart-Daten in eine PDF-Datei ein. Im Wesentlichen, erzeugt es logische Gruppen in Form von Seitenbereichen. Unter Verwendung des Seitenselektor-Syntax, gibt es eine Reihe von Ansätzen, um solche Seitenbereiche zu definieren:
- explizit, z.B. 1-4, 5-8, 9-12 – erzeugt entsprechend drei Bereiche, funktioniert nur bei PDFs, die genau 12 Seiten enthalten; alle darüber hinausgehenden Seiten werden in einen eigenen Seitenbereich gelegt; bei PDFs mit weniger als 12 Seiten sind ein oder mehrere Seitenbereiche "unvollständig" oder fehlen ganz.
- Regelbasiert, z.B. 4* – erzeugt einen Seitenbereich von Blöcken zu je 4 Seiten
- Alle Arten von noch komplexeren Ausdrücken...
Weitere Informationen finden Sie hier.
Der Eintrag für "Knotenname" drückt die Bedeutung der gruppierten Seitenbereiche aus. Das können beliebige Teile eines Buches sein, Kontoauszüge für die Kunden einer Bank, Fotobücher, ...
Wenn die DPPart-Injektion dynamisch auf den Merkmalen oder dem Inhalt eines PDFs basieren soll, ermöglicht die Ausführung einer QuickCheck- oder einer regulären Prüfung in Kombination mit etwas JavaScript innerhalb eines Prozessplans und vor der Ausführung eines QuickFix mit DPart-Injektion, fortgeschrittenere Szenarien auf sehr leistungsfähige Weise anzugehen. Ein Beispiel wird in Form des Prozessplans "Erzeuge DPart Record Information aus Überschriften" geliefert, der mit pdfToolbox 12 ausgeliefert wird.
{
"quickfixes" : [
{
"quickfix" : "inject_dpart",
"version" : "1.0",
"instructions" : [
{
"grouping_expression" : "1-2,3--3,-2--1",
"node_name" : "Book_parts"
}
]
}
]
}
Form XObjekte auf Ebenen verteilen
Für den variablen Datendruck (VDP) ist es sinnvoll, die Form XObjekt-Struktur zu visualisieren. Der Artikel "Form XObjekte auf Ebenen verteilen" beschreibt, wie dies interaktiv durchgeführt werden kann.
Wenn Sie eine Ebenenstruktur erstellen möchten, die von der Form XObjekt-Struktur in einer PDF-Datei abgeleitet ist, sollten Sie dieses Quick Fix verwenden.
{
"quickfixes": [
{
"quickfix": "distribute_xobj_on_layers",
"version": "1.0",
"instructions": [
{
"page_selector": "all"
}
]
}
]
}
// "page_selector": "all|even|odd|<splitscheme_expression>"
Text suchen und ersetzen
Dieses Quick Fix ist ab pdfToolbox 14 verfügbar und ersetzt Text in einem Dokument.
Der "Operator" kann verwendet werden, um den zu suchenden Text zu spezifizieren. Entweder geben Sie den exakten Text ein (Operator: gleich) oder Sie verwenden einen RegEx-Ausdruck, der komplexere Suchmuster zulässt (Operator: entspricht mit RegEx). Weitere Informationen zu RegEx-Ausdrücken finden Sie hier.
Für den zu ersetzenden Text kann die Ausrichtung (Links, rechts, zentriert, Blocksatz) angegeben werden. Links, Rechts oder Zentriert ändert nicht die Laufweite des Textes. Wird Blocksatz ausgewählt, wird der Text innerhalb der Grenzen gestaucht oder gestreckt.
Wenn das Kontrollkästchen "Schriftverzeichnis(se) des Systems durchsuchen" deaktiviert und kein Pfad zu einer expliziten Schrift angegeben ist, können nur die in der PDF-Datei eingebetteten Zeichen zur Ersetzung verwendet werden.
{
"quickfixes" :
[
{
"instructions" :
[
{
"alignment" : "left_aligned",
"bottom" : 0.0,
"font_locations" :
{
"in_system_fonts_folder" : false,
"in_user_fonts_folder" : false,
"use_paths" : false
},
"left" : 0.0,
"operator" : "regex",
"page_selector" : "all",
"replace_with" : "$1 $2 Coated",
"right" : 0.0,
"search_for" : "(Spot)\\s(\\w+)",
"search_scope" : "all",
"top" : 0.0,
"unit" : "pt"
}
],
"quickfix" : "replace_text",
"version" : "1.0"
}
]
}
// "alignment": "right_aligned|left_aligned|center_aligned|block_aligned"
// "in_system_fonts_folder" : true|false
// "in_user_fonts_folder" : true|false
// "use_paths" : true|false -> if true -> "paths" : [""]
// "page_selector": "all|even|odd|<splitscheme_expression>"
// "operator": "regex|equal_to"
// "unit": "pt|mm|inch"
// "search_scope": "all|MediaBox|CropBox|BleedBox|TrimBox|ArtBox|absolute"
Das gezeigten Beispiel verwendet den RegEx-Ausdruck ((Spot)\s(\w+)). Der RegEx-Ausdruck bewirkt, dass nach jedem Sonderfarbnamen das Wort "Coated" eingefügt wird (z. B. wird Spot Green, Spot Yellow, Spot Red mit Spot Green Coated, Spot Yellow Coated, Spot Red Coated ersetzt).
Es gibt auch ein "Search and Replace" Option, die auf bestimmte Arten des variablen Datendrucks angewendet werden kann. Erfahren Sie mehr darüber in diesem Artikel: VDP Dateien aus PDF Vorlagen erzeugen.
PDF-interne Namen nach UTF-8 konvertieren
Einige PDF-basierte ISO-Standards verlangen, dass alle internen Namen in UTF-8 kodiert sind. Alle PDF-internen Namen, die nicht UTF-8-konform sind, werden umbenannt.
{
"quickfixes" :
[
{
"instructions" :
[
{}
],
"quickfix" : "repair_names_to_utf8",
"version" : "1.0"
}
]
}
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. Lesen Sie mehr zu diesem Quick Fix hier.