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

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 &quot;Ordner mit Konfigurationsdateien öffnen&quot; öffnet den entsprechenden Ordner &quot;HTMLTemplates&quot;

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"

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

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

Beispiel für den Inhalt einer &quot;manifest.xml&quot;-Datei mit maximaler Informationsanforderung

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

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