XMP-Metadaten

Über den Webservice "Toolbox" und dem xmp Operation-Element, kann der webPDF-Server in bestehende PDF-Dokumente "Extensible Metadata Platform" (XMP) Metadaten einbetten. Dabei besteht die Möglichkeit, eine eigene Struktur zu definieren und diese durch webPDF in den XMP-Block des PDF integrieren zu lassen. Die Daten werden dabei gemäß ISO 16684-1:2012 standardisiert.

 

Ist ein entsprechender XMP-Block im PDF bereits vorhanden, so wird dieser ergänzt. Sind keine Daten vorhanden, dann wird ein neuer XMP-Block erstellt. Dabei wird die Struktur so angelegt, das auch ein bestehende PDF/A-Dokument ergänzt werden kann bzw. die Daten für eine PDF/A-Konvertierung vorbereitet sind.

 

Die Definition der Daten erfolgt dabei in einer JSON-Datenstruktur, die über das "data-Element" übergeben wird. Die Eigenschaften (Properties) dieser Datenstruktur werden ausgewertet und in einen XMP-Block übersetzt, so das ein XMP-Schema entsteht.

 

Das so entstandene Schema wird über das "namespace-Element" definiert.

 

hint

Es müssen alle Eigenschaften für das Schema angegeben werden, damit das XMP-Schema korrekt erstellt werden kann.

 

Die JSON-Struktur für die Definition der XMP-Daten wird in "data" übergeben. Die JSON-Struktur besteht aus einem Array, das die einzelnen Properties enthält. Jedes Property verfügt über die fünf Eigenschaften

 

propertyName (String, beliebiger Text)

propertyType (String mit den Werten "Real", "Integer", "Date", "Boolean", "Text", "Schema"

propertyCategory (String mit den Werten "internal" oder "external")

propertyDescription (String, beliebiger Text)

propertyValue (Datenwert, entsprechend dem Typ von "propertyType")

 

Achten Sie bitte bei der Angabe der Werte in der JSON-Struktur auf die korrekte Schreibweise.

 

Sub-Schema

 

Wenn bei "propertyType" der Wert "Schema" angegeben wird, dann besteht die Möglichkeit ein "Sub-Schema" zu definieren, das dann wiederum einen "Namespace" und einen "URI" besitzt. Das "Sub-Schema" wird dann über "propertyValue" definiert. In dem Sub-Schema werden diese Angaben über

 

typePrefix

typeURI

typeDescription

 

gemacht.

 

In der Eigenschaft

 

fields

 

wird dann Array angegeben, das wieder Properties für das Schema definiert.

 

Nachfolgend finden Sie ein Beispiel, das eine JSON-Struktur definiert, die Properties definiert und auch ein Sub-Schema erstellt.

 

Beispiel für JSON-Datenstruktur:

 

[
   {
      "propertyName": "RealValue",
      "propertyType": "Real",
      "propertyCategory": "external",
      "propertyDescription": "This is a Real Value",
      "propertyValue": 987.65
   },
   {
      "propertyName": "IntegerValue",
      "propertyType": "Integer",
      "propertyCategory": "external",
      "propertyDescription": "This is a Integer Value",
      "propertyValue": 12345
   },
   {
      "propertyName": "DateValue",
      "propertyType": "Date",
      "propertyCategory": "external",
      "propertyDescription": "This is a Date Value",
      "propertyValue": "2004-10-05T16:17:18+02:00"
   },
   {
      "propertyName": "BooleanValue",
      "propertyType": "Boolean",
      "propertyCategory": "external",
      "propertyDescription": "This is a Boolean Value",
      "propertyValue": true
   },
   {
      "propertyName": "TextValue",
      "propertyType": "Text",
      "propertyCategory": "external",
      "propertyDescription": "This is a Text Value",
      "propertyValue": "Hallo world!"
   },
   {
      "propertyName": "NotesDocument",
      "propertyType": "Schema",
      "propertyCategory": "internal",
      "propertyDescription": "Notes Document Description",
      "propertyValue": {
          "typePrefix": "nd",
          "typeURI": "http://ns.softvision.de/webpdf/6.0/archive/notesdocument/",
          "typeDescription": "Notes Schema",
          "fields": [
               {
                  "propertyName": "Id",
                  "propertyDescription": "document ID",
                  "propertyType": "Text",
                  "propertyValue": "ABC-01234-56789-0"
               },
               {
                  "propertyName": "Ticket",
                  "propertyDescription": "Support-Ticket ID",
                  "propertyType": "Integer",
                  "propertyValue": 815
               }
           ]
       }
   },
   {
      "propertyName": "PriceDocument",
      "propertyType": "Schema",
      "propertyCategory": "internal",
      "propertyDescription": "Price Document Description",
      "propertyValue":
               {
                  "typePrefix": "ps",
                  "typeURI": "http://ns.softvision.de/webpdf/6.0/archive/pricedocument/",
                  "typeDescription": "Price Schema",
                  "fields": [
                       {
                          "propertyName": "Price",
                          "propertyDescription": "Product price",
                          "propertyType": "Real",
                          "propertyValue": 520.55
                       },
                       {
                          "propertyName": "ArticleNr",
                          "propertyDescription": "Article number",
                          "propertyType": "Integer",
                          "propertyValue": 9876
                       }
                   ]
               }
   }
 
]