Die JSON-Logging-Dateien

Es gibt drei JSON-Logging-Dateien, die während jedes erfolgreich durchgeführten Aufrufs von pdfToolbox erstellt werden:

  1. 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)
  2. 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
  3. 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" : "",
}
Click to copy

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]
}
Click to copy

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
    }
}
Click to copy

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
  }
]
Click to copy

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
   }
]
Click to copy

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: ""
}
Click to copy

Herunterladbare Beispieldateien: