Beliebige Inhalte platzieren: Informationen über das PDF-Dokument verwenden

Um beim Platzieren von Inhalten auf Informationen aus dem PDF-Dokument oder auf die verwendeten Variablen und ihre Werte zurückgreifen zu können, wird zur Aufrufzeit im Unterordner "callas_tmp" eine Datei "calsDocInfo.js" bereitgestellt bzw. vor jeder Ausführung einer "Inhalt platzieren"-Korrektur aktualisiert, die einige nützliche Informationen enthält:

  • Dateiname
  • Dateipfad
  • Variablen, die für die Ausführung der "Inhalt platzieren"-Korrektur (bzw. des Profils, in dem diese Korrektur enthalten ist) verwendet wurden, einschließlich der übergebenen Werte für diese Variablen
  • Dokumentinformations-Metadatenfelder: Titel, Autor, Thema, Sticchwörter
  • für jede Seite die Seitengeometrierahmen (MediaBox, CropBox, BleedBox, TrimBox, ArtBox) sowie das "Page label"

Diese Informationen sind als Wert der Variablen "cals_doc_info" repräsentiert und können per JavaScript ausgelesen werden.

Beispiel für die Informationen in einer "calsDocInfo.js"-Datei:

var cals_doc_info = {  
   'document':{  
      'name':'Example.pdf',
      'path':'\/Users\/odruemmer\/Desktop',
      'info':{  
         'author':'Max Meyer'
         'title':'Von cals_doc_info und anderen nützlichen Dingen',
         'subject':null,
         'keywords':'pdfChip; nützlich; Dokumentinformationen; Variablen; Sonderfarben; Flächendeckung; Trefferpositionen'
      },
      'numberofpages':2,
      'completeinkinformation':false,
      'variables':[  
         {  
            'name':'minimum',
            'value':'0'
         },
         {  
            'name':'maximum',
            'value':'100'
         }
      ]
   },
   'pages':[  
      {  
         'mediabox':[  
            0, 0, 4251.97, 2834.65
         ],
         'trimbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'bleedbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'cropbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'artbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'pagenumber':0,
         'pagelabel':'front side'
      },
      {  
         'mediabox':[  
            0, 0, 4251.97, 2834.65
         ],
         'trimbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'bleedbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'cropbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'artbox':[  
            0, 0, 4251.97, 2834.65
         ],
         'pagenumber':1,
         'pagelabel': 'back side'
      }
   ]
};

Weitergehende Informationen anfordern

Weitergehende Informationen über das PDF-Dokument können zusätzlich angefordert werden - mit Hilfe einer sog. Manifest-Datei ("manifest.xml"). In dieser Manifest -Datei kann man folgende Arten von Informationen zusätzlich anfordern:

  • Name und Ersatzdarstellung der im PDF enthaltenen Sonderfarben: <x:inkinfo/>
  • Flächendeckung pro Farbkanal pro Seite: <x:inkcov aperture="1mm" bbox="trimbox"/>; Achtung: diese Informationen erfordern es, dass jede Seite mit einer einstellbaren Auflösung (über den Blendenwert - aperture - anzugeben) gerendert wird, was die Ausführung etwas verlangsamen kann
  • die bounding box (umschließendes Rechteck) pro "Treffer" für eine "Anwenden auf"-Prüfung, die in der "Inhalt platzieren"-Korrektur eingestellt ist: <x:hitinfo/>

Diese Angaben zur Informationsanforderung müssen in einem <x:resources>-Knoten innerhalb des <manifest>-Wurzelknotens enthalten sein:

<?xml version="1.0" encoding="UTF-8" ?>
<manifest xmlns:x="http://www.callassoftware.com/cchip/template/manifest/">
	<x:resources>
		< ...  eine oder mehrere Einträge mit Informationsanforderungen ... />
	</x:resources>
</manifest>

Fordert man alle verfügbaren Informationen an, sieht die Manifest-Datei wie folgt aus:

<?xml version="1.0" encoding="UTF-8" ?>
<manifest xmlns:x="http://www.callassoftware.com/cchip/template/manifest/">
	<x:resources>

		<!--- include ink info (ink names and alternate appearance only): -->
		<x:inkinfo/>

		<!--- include ink coverage info: ink names, usagecm, usage percent
		      Ink coverage is determined by rendering the bbox of each 
		      page with the specified aperture; units for aperture can be pt or mm 
		      bbox can be mediabox, cropbox, bleedbox, trimbox 
		      (Default: bbox: trimbox, aperture: 15mm) -->
		<x:inkcov aperture="1mm" bbox="trimbox"/>
		 
		<!--- include bbox info for items found by "Apply to" check -->
		<x:hitinfo/>

	</x:resources>
</manifest>

Nachstehend ein Beispiel einer "calsDocInfo.js"-Datei mit maximaler Bereitstellung von Informationen. Von besonderem Interesse sind hier:

  • "completeinkinformation" steht auf true; dies heisst, dass sowohl die vorhandenen Sonderfarben aufgelistet sind (samt ihrer Ersatzdarstellung in CMYK-Werten), wie auch alle Farbkanäle aufgelistet mit Angabe ihrer jeweiligen Flächendeckung (anteilig in Prozent bezogen auf die angegebene Seitenfläche (z.B. trimbox) und absolut als Fläche in Quadratzentimetern)
  • für jede Dokument-Seite ist ein Eintrag "inks" vorhanden, der die vorgenannten Information zu Sonderfarben und zur Flächendeckung aller Farbkanäle enthält
  • für die beiden Sonderfarben "Himmelblau" und "Tomatenrot" sind die Tonwerte für die Ersatzdarstellung in CMYK angegeben.
  • unter "hits" finden sich die bounding boxes ("bbox", umschließenden Rechtecke) für jeden Treffer der in der "Inhalt platzieren"-Korrektur eingestellten "Anwenden auf"-Prüfung – in diesem Beispiel ist dies eine Prüfung auf Sonderfarbobjekte.
var cals_doc_info = {  
   'document':{  
      'name':'zwei Sonderfarben.pdf',
      'path':'\/Users\/odruemmer\/Desktop',
      'info':{  
         'author':'OD',
         'title':'zwei Sonderfarben',
         'subject':'Testdatei für Sonderfarben',
         'keywords':null
      },
      'numberofpages':1,
      'completeinkinformation':true,
      'variables':[  
      ]
   },
   'pages':[  
      {  
         'mediabox':[  
            0, 0, 792, 612
         ],
         'trimbox':[  
            0, 0, 792, 612
         ],
         'bleedbox':[  
            0, 0, 792, 612
         ],
         'cropbox':[  
            0, 0, 792, 612
         ],
         'artbox':[  
            0, 0, 792, 612
         ],
         'pagenumber':0,
         'pagelabel':null,
         'inks':[  
            {  
               'name':"Cyan",
               'usagecm':0,
               'usagepercent':0
            },
            {  
               'name':"Magenta",
               'usagecm':0,
               'usagepercent':0
            },
            {  
               'name':"Yellow",
               'usagecm':0,
               'usagepercent':0
            },
            {  
               'name':"Black",
               'usagecm':1.09066,
               'usagepercent':0.180804
            },
            {  
               'name':"Himmelblau",
               'alternatename':'cmyk',
               'alternatecomps':[  
                  1, 0, 0, 0
               ],
               'alternateicc':null,
               'usagecm':37.6872,
               'usagepercent':6.24762
            },
            {  
               'name':"Tomatenrot",
               'alternatename':'cmyk',
               'alternatecomps':[  
                  0.15, 1, 1, 0
               ],
               'alternateicc':null,
               'usagecm':37.6685,
               'usagepercent':6.24453
            }
         ],
         'hits':[  
            {  
               'bbox':[  
                  82.2098, 129.289, 253.823, 229.147
               ]
            },
            {  
               'bbox':[  
                  473.391, 209.367, 253.823, 229.147
               ]
            }
         ]
      }
   ]
};

Wichtig für die erfolgreiche Verarbeitung ist, dass die Datei manifest.xml heissen muss und im zu verarbeitenden Ordner (neben der index.html-Datei) liegt.

Beispiel für die Auswahl eines HTML-Dateiordners für die zu platzierenden Inhalte

  1. Einstellung der "HTML Dateiordners"
  2. ausgewählter "HTML-Dateiordner"
  3. bei Auswahl dieses Menüpunktes gelangt man zum Ordner, der alle vorhandenen "HTML Dateiordner" enthält

Menüpunkt "Ordner mit Konfigurationsdateien öffnen" öffnet den entsprechenden Ordner "HTMLTemplates"

Bei Ausführen des Menüpunktes "Ordner mit Konfigurationsdateien öffnen" gelangt man zum entsprechenden Ordner "HTMLTemplates". Hier liegen alle Ordner, die mindestens eine "index.html"-Datei sowie in der Regel weitere Dateien wie CSS- oder JavaScript-Dateien enthalten sowie weitere benötigte Ressourcen wie beispielsweise Bilder oder Schriften.

Beispiel für Aufbau eines HTML-Dateiordner mit "calsDocInfo.js" und "manifest.xml"

Wichtig:

  • der Ordner "callas_tmp" wird von pdfToolbox bei der ersten Ausführung der entsprechend konfigurierten "Inhalt platzieren"-Korrektur angelegt, sofern noch nicht vorhanden
  • der Ordner "callas_tmp" enthält dann für das zuletzt verarbeitete PDF die entsprechenden Dokumentinformationen in der Datei "calsDocInfo.js"
  • insofern man zusätzliche Informationen für die nächste Verarbeitung anfordern möchte, muss die Datei "manifest.xml" in den gleichen Ordner gelegt werden, in der sich "index.html" befindet
  • diese manifest.xml-Datei muss die entsprechenden Anforderungsanweisungen enthalten

Beispiel für den Inhalt einer "manifest.xml"-Datei mit maximaler Informationsanforderung

Inhalt der "calsDocInfo.js"-Datei mit Angaben zu Sonderfarben, Flächendeckung und Postionen der Treffer der "Anwenden auf"-Prüfung