Die JSON-Logging-Dateien
Es gibt drei JSON-Logging-Dateien, die während jedes erfolgreich durchgeführten Aufrufs von pdfToolbox erstellt werden:
-
launch.json:
Wird sofort beim Start von pdfToolbox CLI erstellt oder beim Aufruf einer Verarbeitung einer PDF-Datei in pdfToolbox Desktop. Es wird weder die kfpx-Datei geladen noch wird auf die zu verarbeitende PDF-Datei zugegriffen. Es werden nur minimale Informationen über die Umgebung und den Kontext gesammelt. Dazu gehören der Inhalt der Kommandozeile plus der automatisch erstellten Unique ID (app_uuid) und der Job ID (wenn sie als Parameter in der Kommandozeile weitergegeben wurden) -
init.json:
Wird geschrieben, sobald die kfpx-Datei geladen und geparst wurde. Die zu verarbeitende PDF-Datei wird geöffnet und grundlegende Informationen werden aus der PDF-Datei extrahiert -
finish.json:
Wird geschrieben, sobald pdfToolbox sich beendet (unabhängig davon, ob die Verarbeitung erfolgreich war oder nicht)
Fehlt init.json oder finish.json im Logging, ist dies ein Hinweis, dass pdfToolbox vorzeitig abgebrochen wurde, ohne diese Dateien zu schreiben. Das kann als Grundlage für eine Post-Mortem-Analyse dienen. Wurde init.json nicht geschrieben, ist wahrscheinlich etwas beim Lesen der kfpx-Datei, beim Zugriff auf die PDF-Datei für eine grundlegende Analyse oder etwas ähnliches falsch gelaufen. Wenn nur die finish.json-Datei fehlt, ist etwas während der Ausführung des kfpx-Profils falsch gelaufen, oder bei der Erstellung des Reports beziehungsweise eines anderen Outputs.
Die Struktur der 'launch.json'
Name | Wert |
verb |
Typ der Logging-Datei. Mögliche Werte: launch. Hinweis: Die anderen Werte (init, finish) werden nur in den korrespondierenden init.json- und finish.json-Dateien verwendet |
app_uuid | Automatisch generierte Unique ID aufPro-Aufruf-Basis. Diese Unique ID hat garantiert denselben Wert für alleLogfiles desselben Aufrufs (und ist auch identisch mit der Bezeichnung fürden Parent Folder, der diedazugehörenden .json-Dateien enthält) |
timestamp | Zeitstempel. Format: YYYY/MM/DD hh:mm:ss |
timestamp_hour | Der Abschnitt Stunde des Zeitsempels im Format YY (z.B. 20) |
timestamp_month | Der Abschnitt Monat des Zeitsempels im Format MM (z.B. 07) |
timestamp_weekday | Der Abschnitt Wochentag des Zeitsempels im Format W (z.B. 3 für Mittwoch) |
job_id | Eine Job ID die über die Kommandozeile bereit gestellt wird (nicht in der Desktop-Version verfügbar) |
process_id |
process ID für den Prozess im Betriebssystem |
filename |
Dateiname der zu verarbeitenden Datei |
filepath |
Pfad zum Ordner und Dateiname der zu verarbeitenden Datei |
cli_params | Parameter für die Kommandozeile |
program_name |
Name des Programms (z.B. callas pdfToolbox CLI (x64)) |
program_version | Version des Programms (z.B. 10.0.461) |
platform | Plattform auf der pdfToolbox ausgeführt wird (z.B. Mac OS X 10.10.5) |
machine_ips |
Liste der IP-Adressen des Rechners, auf dem pdfToolbox ausgeführt wird. Als Form wird ein Array mit Strings verwendet. Beispiel: machine_ips : [ "192.168.1.1", "123.45.67.89"] Hinweis: Da Rechner mehr als eine IP-Adresse haben können, wird dieser Eintrag als eine Liste mit Einträgen strukturiert. Bekannte Einschränkung: Nur für die Betriebssysteme Windows/Mac OS X/Linux implementiert |
machine_name | Rechnername des Geräts, auf dem pdfToolbox ausgeführt wird |
machine_uuid |
UUID des Rechners auf dem pdfToolbox ausgeführt wird Hinweis: Das ist eine UUID, die aus den Hardware-Parameterndes aktuellen Geräts abgeleitet wird. Dabei werden bestimmte Teile entfernt,sodass die UUID immer noch einzigartig bleibt aber die Hardware-Parameter nicht aus der UUID zurück-hergeleitet werden können |
temp_folder |
Dateipfad zum temporären Ordner, der während des Aufrufs von pdfToolbox verwendet wird |
Beispielinhalt für 'launch.json'
{
"verb" : "launch",
"app_uuid" : "0a0ceba3-7ca9-421f-a973-8caae2950690",
"timestamp" : "2016/10/31 20:08:27",
"timestamp_hour" : 20,
"timestamp_month" : 10,
"timestamp_weekday" : 1,
"process_id" : 29543,
"job_id" : "some_job_ID_provided_through_cli_parameter",
"filename" : "4-Catching Text in PDFs - Michael Fuchs.pdf",
"filepath" : "/var/folders/80a56def-aa5f-418b-9685-8614ab6d41c2/0x10dd99000/4-Catching Text in PDFs.pdf",
"cli_params" : ["--hitsperpage=50", "--report=ERROR,WARNING,TEMPLATE=OVERVIEW"],
"program_name" : "callas pdfToolbox CLI (x64)",
"program_version" : "9.1.417",
"platform" : "Mac OS X 10.10.5",
"machine_ips" : ["192.168.17.63"],
"machine_name" : "pdftoolbox_satellite_3",
"machine_uuid" : "---6E851-41E8-5060-B0A7-C0550F43E418",
"temp_folder" : "/var/folders/yb/16cjr4dn2c5_27r2khx1bvbh0000gn/T/com.callassoftware.pdfToolbox/32e5717f-240a-4a17-86fe-a95551808721",
"temp_folder_hdd" : "",
}
Struktur der 'init.json'
Beschreibung aller Einträge in init.json - ein Zusatz zu den oben beschriebenen Einträgen für "launch.json". Der Eintrag verb hat den Wert von "init".
Name | Wert |
doc_created |
Zeitstempel für die Dokumenterstellung; dasselbe Format wie beim Eintrag timestamp (z.B. "2015/06/03 12:23:53.000") |
doc_id1 |
Erster von zwei Werten im Dokumenteintrag für die Document ID (z.B. "DB10E96543FE2B4E93226FA065FE83BC") |
doc_id2 |
Zweiter von zwei Werten im Dokumenteintrag für die Document ID (z.B. "00AFB863B1344FDDBE90D24E513AB992") |
doc_modified |
Zeitstempel für die Dokumentmodifizierung; dasselbe Format wie beim Eintrag timestamp (z.B. "2015/06/08 17:03:18.000") |
doc_pages |
Anzahl der Seiten im Dokument |
doc_size |
Größe der PDF-Datei in Bytes (z.B. "863672", entspricht etwa 863 KB) |
firstpage_size | Struktur, die die Größe der ersten Seite im PDF widerspiegelt (mehr hierzu weiter unten bei der Definition für die firstpage_size-Struktur) |
pdf_creator | Wert für den creator-Eintrag in den Dokument Metadaten (z.B. "Acrobat PDFMaker 10.1 for PowerPoint) |
pdf_encrypted |
Ob das PDF verschlüsselt ist oder nicht; mögliche Werte: 0 (nicht verschlüsselt) und 1 (verschlüsselt) Hinweis: bei verschlüsselten PDF-Dateien wird die init.json-Datei nur geschrieben, wenn ein gültiges Passwort angegeben wurde |
pdf_version | PDF Version der PDF-Datei (z.B. 1.7) |
pdf_writer | Wert für den writer-Eintrag in den Dokument Metadaten (z.B. Adobe PDF Library 10.0) |
pdfa_version | Falls vorhanden, die PDF/A-Version (z.B. "PDF/A-3u") |
pdfe_version | Falls vorhanden, die PDF/E-Version (z.B. "PDF/E-2r") |
pdfua_version | Falls vorhanden, die PDF/UA-Version (z.B. "PDF/UA-1") |
pdfx_oi_icc_name | Falls vorhanden, der Name des PDF/X-Output-Intent-Profils (z.B. "PSO Coated v3") |
pdfx_oi_info | Falls vorhanden, der Text im Feld OutputIntent Info |
pdfx_oi_output_cond_id | Falls vorhanden, der Wert des PDF/X OutputIntentIdentifier (z.B. "FOGRA39") |
pdfx_version | Falls vorhanden, die PDF/X-Version (z.B. "PDF/X-1a") |
profile_filename | Dateiname des kfpx-Profils (z.B. "Convert to PDFA-1a.kfpx") |
profile_id |
Interne ID des kfpx-Profils (z.B. "P959c755539c8439e62c516c66a4a9097") |
profile_name | Für Menschen verständlicher Name des kfpx-Profils (z.B. "Sheetfed offset (CMYK, RGB and spot colors) (GWG 2015)") |
variables | Datenstrukturen, die - beim Anstoß des Prozesses - die Variablen als evaluiert repräsentieren (entspricht den JavaScript-Objekt app.variables; mehr Details hierzu in der Dokumentation „Variablen und JavaScript“) |
Der Eintrag 'firstpage_size'
Die Struktur 'firstpage_size' gibt die verschiedenen Seitengeometrierahmen zurück:
- Jeder Seitengeometrierahmen (MediaBox, CropBox, BleedBox, TrimBox, ArtBox) hat einen Array mit vier Einträgen für die Werte in der Abfolge left, bottom, right, top.
- Jeder Wert in diesem Array wird in pt angegeben (inch/72)
- cropsize repräsentiert die effektive Breite (width = w) und Höhe (height = h) der CropBox, oder - falls diese nicht vorhanden ist - der MediaBox.
- trimsizerepräsentiert die effektive Breite (width = w) und Höhe (height = h) der TrimBox, oder - falls dies TrimBox nicht vorhanden ist - der CropBox und bei deren Fehlen, der MediaBox.
- bleed repräsentiert den effektiven Anschnitt an den vier Seiten in der Abfolge left, bottom, right, top, basierend auf trimsize. Fehlt die BleedBox, sind die Werte für alle vier Seiten 0 (Null).
Die Struktur des Eintrags page_size entry
"firstpage_size" : {
"mediabox" : [l b r t] ,
"cropbox" : [l b r t] ,
"bleedbox" : [l b r t] ,
"trimbox" : [l b r t] ,
"artbox" : [l b r t] ,
"cropsize" : [w h] ,
"trimsize" : [w h] ,
"bleed" : [l b r t]
}
Beispielinhalt für init.json
{
"verb" : "init",
"app_uuid" : "0a0ceba3-7ca9-421f-a973-8caae2950690",
"timestamp" : "2016/10/31 20:08:27",
"timestamp_hour" : 20,
"timestamp_month" : 10,
"timestamp_weekday" : 1,
/* ... and all further entries defined for "launch.json" */
"profile" : "P959c755539c8439e62c516c66a4a9097",
"profile_name" : "Sheetfed offset (CMYK, RGB and spot colors) (GWG 2015)",
"doc_size" : 863672,
"doc_created" : "2015/06/03 12:23:53.000",
"doc_modified" : "2016/10/31 20:08:28.000",
"pdf_version" : "1.5",
"pdf_creator" : "Acrobat PDFMaker 10.1 für PowerPoint",
"pdf_writer" : "Adobe PDF Library 10.0",
"doc_id1" : "DB10E96543FE2B4E93226FA065FE83BC",
"doc_id2" : "00AFB863B1344FDDBE90D24E513AB992",
"doc_pages" : 23,
"firstpage_size" : {
"mediabox" : [-10 0 581 615] ,
"cropbox" : [-10 0 581 615] ,
"bleedbox" : [5 5 559 570] ,
"trimbox" : [10 10 551 565] ,
"artbox" : [] ,
"cropsize" : [591 625] ,
"trimsize" : [541 555] ,
"bleed" : [5 5 8 5]
}
"variables" : {
"Calcs_for_LFP_Preflight_-_viewing_distance" : {
"eff_min_fontsize":null,
"eff_min_imageresolution":null
},
"eff_min_fontsize":200,
"eff_min_imageresolution":40,
"input_scalingfactor":100,
"input_viewingdistance":10
}
}
Struktur der 'finish.json'
Beschreibung für jeden Eintrag bei finish.json (als Zusatz zu den Einträgen, die oben für launch.json" und "init.json" beschreiben wurden)
Name | Wert |
retcode | Der exit code für das Programm (weitere Details im pdfToolbox CLI Handbuch). Hinweis: Wert wird nicht als Integer bereitgestellt. |
duration |
Dauer der Verarbeitung (im Wesentlichen die Differenz zwischen dem Zeitstempel am Ende und dem Zeitstempel zu Beginn der Verarbeitung), als hh:mm:ss:ttt formatiert (z.B. "0:00:11:045") |
doc_corrections |
Anzahl der Korrekturen, die während des Prozesses gemacht wurden |
doc_max_severity |
Maximaler Schweregrad; die definierten Werte sind: 3 = error (Fehler), 2 = warning (Warnung), 1 = info (Info), 0 = no message (keine Meldung) |
doc_messages |
Anzahl der Meldungen, etwa die gesamte Summe aus Fehler-, Warnung- und Info-Meldungen |
doc_errors |
Anzahl der Fehler-Meldungen |
doc_errors_list | Ein Array mit Details zu Fehlern (errors); jeder Array beinhaltet einen error-name zusammen mit dem dazugehörigen Zähler (counter) |
doc_warnings |
Anzahl der Warnungs-Meldungen |
doc_warnings_list | Ein Array mit Details zu Warnungen (warnings); jeder Array beinhaltet einen warning-name zusammen mit dem dazugehörigen Zähler (counter) |
doc_infos |
Anzahl der Info-Meldungen |
doc_infos_list | Ein Array mit Details zu Informationen (infos); jeder Array beinhaltet einen info-name zusammen mit dem dazugehörigen Zähler (counter) |
num_images | Anzahl der Bilder |
num_fonts |
Anzahl der Schriften; zwei verschiedene Schriftressourcen, bei denen der Schriftname zufällig gleich ist, werden als zwei Schriften gezählt. |
fonts | Datenstruktur, welche die Schriften in der PDF-Datei repräsentiert |
num_spotcolors | Anzahl der Schmuckfarben; zum Beispiel alle Separationsfarbräume, deren Name einer der folgenden ist: Cyan, Magenta, Yellow, Black, All oder None |
spotcolor_names | Array mit Schmuckfarbnamen; etwa "spotcolor" : [ "Orange", "Purple" ] |
num_icc_profiles |
Anzahl aller ICC-Profile; nicht eingerechnet ICC-Profile in Output Intents |
icc_profiles_gray | Array für Namen von ICC-Profilen; nichteingerechnet ICC-Profile in Output Intents; der CalGray-Farbraum, der genaugenommen kein ICC-basierter Farbraum ist, wird hier als "CalGray"reportet; zum Beispiel "icc_profiles_gray" : [ "Generic GrayProfile", "Gamma 2.2 Gray"] |
icc_profiles_rgb | Array für Namen von dreikomponentigen ICC-Profilen; ausgenommen ICC-Profile in Output Intents; RGB-ICC-Profile werden mit ihrem Namen reportet (Inhalt des 'desc-Feldes), der CalRGB-Farbraum, der genau genommen kein ICC-basierter Farbraum ist, wird hier als "CalRGB" reportet; der Lab-Farbraum, der genau genommen kein ICC-basierter Farbraum ist, wird hier als "Lab" reportet; Beispiele sind "icc_profiles_rgb" : [ "eciRGB v2", "CalRGB", "Lab"] |
icc_profiles_cmyk | Array für Namen von CMYK-ICC-Profilen; ausgenommen ICC-Profile in Output Intents; zum Beispiel "icc_profiles_cmyk" : [ "PSO Coated v3", "US Web Coated SWOP"] |
icc_profiles_lab | Array für Namen von Lab-ICC-Profilen; Der Lab-Farbraum, der genau genommen keinICC-basierter Farbraum ist, wir dennoch hier als "Lab" reportet; zum Beispiel: "icc_profiles_lab" : [ "Lab"] |
pdfx_version | Falls vorhanden, die PDF/X-Version (z.B. "PDF/X-1a") |
pdfx_oi_output_cond_id | Falls vorhanden, der Wert des PDF/X OutputIntentIdentifier (z.B. "FOGRA39") |
pdfx_oi_info | Falls vorhanden, der Text im Feld OutputIntent Info |
pdfx_oi_icc_name | Falls vorhanden, der Name für das PDF/X OutputIntent Profil (z.B. "PSO Coated v3") |
pdfa_version | Falls vorhanden, die PDF/A-Version (z.B. "PDF/A-3u") |
pdfua_version | Falls vorhanden, die PDF/UA-Version (z.B. "PDF/UA-1") |
pdfe_version | Falls vorhanden, die PDF/E-Version (z.B. "PDF/E-2r") |
pdf_encrypted | Eintrag, ob das PDF verschlüsselt ist; mögliche Werte: 0 (nicht verschlüsselt) and 1 (verschlüsselt) |
Unterstrukturen für Schriften
"fonts" : [
{
"fontname" : "TimesNewRomanPS-BoldMT",
"fonttype" : "Type1",
"embedded" : 1,
"subset" : 1
},
{
"fontname" : "MyriadPro-BoldItalic",
"fonttype" : "Type0",
"embedded" : 1,
"subset" : 1
}
]
Unterstrukturen für errors_list/warnings_list/infos_list
Jeder Eintrag in jeder der drei Listen beinhaltet ein Schlüsselwertpaar (key value pair), wobei der Schlüssel (key) der Name der Prüfung ist (wie in der verwendeten kfpx konfiguriert), und der Wert (value) eine Zahl n/m/o/p/q/r/s/t/u, welche die Anzahl der Treffer wiedergibt, die durch den jeweiligen Fehler / die jeweilige Warnung / die jeweilige Info ausgelöst wurde.
"doc_errors_list" : [
{
"name of check that has triggered an error" : n
},
{
"another name of a check that has triggered an error" : m
},
{
"yet another name of a check that has triggered an error" : o
}
]
"doc_warnings_list" : [
{
"name of check that has triggered a warning" : p
},
{
"another name of a check that has triggered a warning" : q
},
{
"yet another name of a check that has triggered a warning" : r
}
]
"doc_infos_list" : [
{
"name of check that has triggered an info message" : s
},
{
"another name of a check that has triggered an info message" : t
},
{
"yet another name of a check that has triggered an info message" : u
}
]
Beispielinhalt für 'finish.json'
{
"verb" : "finish",
"app_uuid" : "0a0ceba3-7ca9-421f-a973-8caae2950690",
"timestamp" : "2016/10/31 20:08:27",
"timestamp_hour" : 20,
"timestamp_month" : 10,
"timestamp_weekday" : 1,
/* ... and all further entries defined for "launch.json" */
"profile" : "P959c755539c8439e62c516c66a4a9097",
"profile_name" : "Sheetfed offset (CMYK, RGB and spot colors) (GWG 2015)",
/* ... and all further entries defined for "init.json" */
"retcode" : "8",
"duration" : "0:00:11:045",
"doc_corrections" : 870,
"doc_max_severity" : 3,
"doc_messages" : 236,
"doc_errors" : 160,
"doc_errors_list" : [
{
"Font not embeddded" : 17
},
{
"DeviceRGB used" : 28
},
{
"TrimBox entry missing" : 1
}
]
"doc_warnings" : 76,
"doc_warnings_list" : [
{
"Resolution less than 200ppi for continuous tone image" : 3
},
{
"Page empty" : 2
}
]
"doc_infos" : 0,
"doc_infos_list" : [
{
"Uses spot color" : 61
},
{
"Uses transpanrency" : 39
}
]
"pdf_encrypted" : 0,
"num_images" : 70,
"num_fonts" : 2,
"fonts" : [
{
"fontname" : "TimesNewRomanPS-BoldMT",
"fonttype" : "Type1",
"embedded" : 1,
"subset" : 1
},
{
"fontname" : "MyriadPro-BoldItalic",
"fonttype" : "Type0",
"embedded" : 1,
"subset" : 1
}
],
"num_spotcolors" : 3,
"spotcolor_names" : [
"Orange",
"Purple",
"Varnish"
],
"num_icc_profiles" : 3,
"icc_profiles_gray" : [
],
"icc_profiles_rgb" : [
"sRGB",
"eciRGB v2"
],
"icc_profiles_cmyk" : [
"PSO Coated v3"
],
"pdfx_version" : "PDF/X-4",
"pdfx_oi_output_cond_id" : "FOGRA39",
"pdfx_oi_info" : "Prepared for ISO 12647-2:2013, coated sheet fed offset",
"pdfx_oi_icc_name" : "PSO Coated v3",
"pdfa_version" : "PDF/A-2b",
"pdfua_version" : "",
"pdfe_version: ""
}