Skip to main content

Documents SDK - IDML Format

Important Note

This series of Wacom products is now discontinued and support for them is no longer offered.

1. Overview

The Ink Document Metadata file format defines active areas within a PDF document by the use of Extensible Metadata Platform (XMP) packets with a custom schema. Each active area within a document has a matching AcroForm object within the PDF. An XMP packet embedded in the metadata stream of the matching AcroFormObject stores the data describing the behaviour and features of the active area. An XMP packet embedded in the metadata stream for the PDF page object describes the features such as barcode ID for each individual page. An XMP packet embedded in the metadata stream of the root PDF object stores the metadata related to the document as a whole.

Throughout the libraries and documentation there are references to 'Barbera' and 'Baxter' for the following reason: The Baxter SDKs were initially created to support CLB-Create and CLB-Paper applications developed for the Wacom Clipboard PHU-111, codenamed Barbera. The source of the name Baxter is ‘Barbera Extensible Translator’.

The SDKs can be used universally to extend the contents of PDF documents, as described in the Ink Document Metadata Format (aka Barbera File Format).

1.1 Schema Overview

The XML namespace for the Barbera file format is http://wacomgss.com/barbera/1.0/
XMP packets define the namespace in this way:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:wgss="http://wacomgss.com/barbera/1.0/"
/>
</rdf:RDF>

The file format has three types of XMP packet:

  • Document Level Packet: Contains metadata covering the whole document
  • Page Level Packet: Contains metadata for a particular page
  • Object Level Packet: Contains metadata for a particular object

Before data capture, each XMP packet defines the characteristics and type of a particular area. After data capture, the XMP packet stores both raw and converted data alongside the area characteristics. The schemas outline below are placed between rdf:Description elements of the XMP packet.

1.2 Definitions

This section gives a high level overview of the terms used and the underlying technology.

1.2.1 PDF

PDF or ‘Portable Document Format’ is a file format used to present documents in a program, software and hardware independent way, as defined by the ISO 32000–1 specification. The PDF format is a subset of COS (Carousel object structure). A COS tree mainly consists of objects, of where there are 8 types:

  • Boolean (true and false)
  • Number
  • String (delimited in parentheses, may contain 8 bit chars)
  • Name (starting with a ‘/’)
  • Array (ordered collection of objects delimited in square brackets)
  • Dictionary (Collections of objects indexed by Names, stored in << >> pairs)
  • Stream (Usually large amounts of data either compressed or binary)
  • Null

Objects can be direct (embedded within another object) or indirect. Indirect objects have an object number and a generation number (defined between obj and endobj keywords). An index table (xref keyword) follows the main body of the data and gives the byte offset of each indirect object from the start of the file. At the end of the pdf the file trailer (trailer keyword) contains a dictionary, an offset to the start of the index table and the %%EOF (end of file marker). The dictionary contains a reference to the root object of the tree structure, and the count of indirect objects in the index table. This dictionary is also used to store metadata for the document.

1.2.2 XMP

XMP or ‘Extensible Metadata Platform’ is an ISO standard for the creation, processing and interchange of custom metadata for digital documents and data sets. PDFs support XMP packets embedded within metadata streams of COS objects, allowing the data definitions for the IDML file format to be part of the same file used to print the form itself. Using XMP in this way allows the flexibility to store the IDML metadata and captured pen data in the digitally signed document, readable on standard a PDF readers.

1.2.3 AcroForm

An AcroForm (sometimes called an Acrobat form) is a collection of active form objects such as a checkbox, text input field or radio button added to a PDF to create an interactive form. The IDML file format uses AcroForms to bind active areas to underlying PDF objects.

1.2.4 Smart Pad

A smart pad refers to the Wacom device that captures pen data from an inking pen, with the intention of recording a digital copy of the real ink, drawn by the pen on paper. This includes the Barbera and Columbia devices.

1.2.5 Pen data

For the purposes of this document, pen data refers to the digital version of the data captured directly from the smart pad device. The pen data is a collection of strokes, with each stroke containing a collection of points. Each point contains x, y, pressure and time data. Each stroke also contains the ink colour for that particular stroke, and the ink thickness for the stroke.

1.2.6 HWR (Hand writing recognition)

For certain active areas, it is expected that the client application will perform automatic hand writing recognition( HWR). This translated data will be stored in the the field level XMP data. The appearance stream for the active area will be set to show the stroke data so that the visual appearance of the digital and analogue documents is the same.

1.2.7 Centripetal Catmull-Rom Spline

A Centripetal Catmull-Rom spline is a type of interpolating spline (a curve that goes through its control points), defined by four control points (P0 to P3) where the curve is only drawn between P1 and P2.

2. Scope

This document defines the IDML file format. The format is a collection of XMP packets embedded within metadata streams of a PDF document. The three types of XMP packet (Document Level, Page Level and Object Level). Sections 3, 4 and 5 of this document define the schema for each packet, and section 7 contains a full document example.

3. Common Data Type Definitions

This section covers the XMP chunks that are common between sections, including:

  • XMP Preamble
  • Pen Data / Compressed Pen Data
  • WGSS Packet Type Marker

3.1 XMP Packet Wrapper

Every XMP has a pair of XML processing instructions, that contain both the rdf:RDF element and the rest of the packet data. The header XML processing instruction contains a UUID and the unicode character U+FEFF used as a byte-order marker (￯ shows the 0xFEFF character):

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu"/>
</rdf:RDF>
<?xpacket end="w"?>

If the XMP block is writeable, the end attribute of the trailer should be ‘w’, for a read only block this should be ‘r’.

3.2 Pen Data

The pen data sub-packet records input data received from the smart pad device. This is a collection of strokes, each of which is a collection of points that represent control points on a catmull-rom spline and a width at that point:

<wgss:PenData>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="1" wgss:y="2" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="2" wgss:y="3" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="3" wgss:y="4" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="4" wgss:y="5" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="5" wgss:y="6" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="6" wgss:y="7" wgss:w="5" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="7" wgss:y="8" wgss:w="6" />
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="4" wgss:y="5" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="5" wgss:y="6" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="6" wgss:y="7" wgss:w="5" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="7" wgss:y="8" wgss:w="6" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="1" wgss:y="2" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="2" wgss:y="3" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="3" wgss:y="4" wgss:w="3" />
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
</rdf:Seq>
</wgss:PenData>

The example above shows three strokes. When recording pen data, 'air strokes' where the pen is not in contact with the device are discarded.

3.2.1 Stroke

A stroke is an RDF sequence of points, the color of the stroke is defined in the first point in the sequence. If the inkColor attribute is present in any point other than the first of the sequence, it will be ignored.

<wgss:Stroke>
<rdf:Seq>
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="1" wgss:y="2" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="2" wgss:y="3" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="3" wgss:y="4" wgss:w="3" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="4" wgss:y="5" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="5" wgss:y="6" wgss:w="4" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="6" wgss:y="7" wgss:w="5" />
<rdf:li wgss:inkColor="#FFFFFF" wgss:x="7" wgss:y="8" wgss:w="6" />
</rdf:Seq>
</wgss:Stroke>

3.2.1.1 Point

Each point is an RDF list item, representing a control point on a catmull-rom spline, along with the thickness of the stroke at that point. It will also contain the inkColor.

<rdf:li wgss:inkColor="#FFFFFF" wgss:x="1" wgss:y="2" wgss:w="3" />

The point element has the following attributes describing the control point:

AttributeDetail
xThe x coordinate of the point in device units
yThe y coordinate of the point in device units
wThe width of the stroke at this point
inkColorThe Color of the point (and or stroke)

x,y,w are expressed in device units.

3.3 Compressed Pen Data

Sometimes it will be preferable to store the pen data in a compressed format in order to reduce the size of the meta data streams that have bee added to the document. In these instances, any 'Pen Data' sections within the file format can be substituted with a 'Compressed Pen Data' section. A compressed pen data section stores the stroke data as serialised,compressed base64. Serialisation and compression/decompression is handled by IDML so data is presented uncompressed to developers.

For the purposes of encoding this point data into the meta data stream, the byte data is simply base64 encoded, and placed in the appropriate XMP tag:

<wgss:CompressedPenData>
<wgss:compressedStroke="MzQ1MTMwOTQ2NTEyMjkzNDc1ODI5MzY0NTgyMzQ2NzU5MjgzNDc2NTkyODM0NzY1MjA0NzY1MjAzODQ3NTYyOTgzNDc2NTIzODQ3NTYzODQ3NTYyMDgzNDc1NjI4MDM0NzU2MjM4NDdpNTYyODM0NzU2Mjg3MzQ1NjI4MzQ3Nmk1">
<wgss:compressedStroke="1YyMDgzgyMzQ2NzU5MjgzNDc2NTODI5MzY0NTMMzQ1MTMwOTQ2NTEyM3MzQ1NjI4MzQ3NjkzNDcjA0NzY1NTIzODQ3NTYzODQ3NTkyODM0NzY1NDc1NjIDc2DM0NzU2Mjgmk14MDM0NzU2MjM4NDdpNTYyOMjAzODQ3NTYyOTgzN">
</wgss:CompressedPenData>

3.4 WGSS Packet Type Marker

Each XMP Packet will have an identifying element so parsers can determine which Level the XMP Packet belongs to.

<wgss:PacketType wgss:level="document"/>
LevelDetail
documentThe contents of this XMP packet defines Document Level data
pageThe contents of this XMP packet defines Page Level data
fieldThe contents of this XMP packet defines Field Level data

4. Document Level Definitions

This section defines features specified in the document level XMP packet, including:

  • Authoring tool version
  • Page ID list
  • Page ID order
  • Document completion time
  • Smart pad device ID
  • Smart pad device characteristics
  • Client application ID
  • Client device ID

4.1 Authoring Tool Version

This element records the version number and name of the authoring tool used to create the file:

<wgss:AuthoringTool wgss:version="1.0" wgss:toolname="Barbera Authoring Library"/>

The ‘version’ attribute denotes the version number of the client, and the tool name attribute is the human readable name for the authoring tool used.

4.2 Page ID List

This element lists the page IDs (barcodes) for each active page in the document, and which PDF page the page ID relates to:

<wgss:PageIDList>
<rdf:Bag>
<rdf:li wgss:pdfPage="1" wgss:uuid="1234567" />
<rdf:li wgss:pdfPage="3" wgss:uuid="1234568" />
<rdf:li wgss:pdfPage="2" wgss:uuid="1234569" />
</rdf:Bag>
</wgss:PageIDList>
AttributeDetail
pdfPageThe PDF page that the ID relates to
uuidThe barcode ID for the particular page in the PDF

4.3 Page Completion Order

The page order element lists the order in which the PDF pages should be completed:

<wgss:PageCompletionOrder>
<rdf:Seq>
<rdf:li>1</rdf:li>
<rdf:li>2</rdf:li>
<rdf:li>3</rdf:li>
</rdf:Seq>
</wgss:PageCompletionOrder>

In the example above the pages are completed 1, 2 then 3. This is an optional element.

4.4 Document Completion Time

This element is set to the time when a document is sealed, and marks the time the document was completed:

<wgss:DocumentCompletionTime>2016-06-17T13:32:45.5316112Z</wgss:DocumentCompletionTime>

The time is specified in ISO–8601 format (“yyyy-MM-dd’T’HH:mm:ss.fffffffZ”") in UTC.

4.5 Smart Pad Device ID

The’SmartPad' element stores the ID of the last smart pad device used to complete the document:

<wgss:SmartPad wgss:id="1234567890" wgss:deviceName="Joss' Barbera Device"/>
AttributeDetail
idThe device ID of the smart pad used
deviceNameThe human readable name of the smart pad device (as configured by the user)

4.6 Smart Pad Device Characteristics

The’SmartPadCharacteristics’ element stores details about the smart pad used to capture data:

   <wgss:SmartPadCharacteristics wgss:unit="inch" wgss:pointsPerUnit="200" wgss:width="10400" wgss:height="10400"/>
AttributeDetail
unitThe unit of measurement for the characteristics (e.g. meter, inch)
pointsPerUnitThe number of devices points per unit / the density of the sensor
widthThe width of the device sensor in device points
heightThe height of the device sensor in device points

4.7 Client App

The ‘ClientApp’ element stores information about the application that was used to capture data from the smart pad device:

<wgss:ClientApp wgss:version="1.0" wgss:os="iOS" wgss:applicationName="barbera for iOS"/>
AttributeDetail
versionThe client application version number
osThe operating system for the client
applicationNameThe name of the client application

4.8 Client Device

The ‘ClientDevice’ element stores information about the device that the client application is running on:

<wgss:ClientDevice wgss:id="1234567890" wgss:deviceClass="iPad" wgss:deviceName:"Joss' iPad Pro"/>
AttributeDetail
idThe device ID as returned by the host OS
deviceClassThe type of device (e.g. iPhone)
deviceNameThe human readable name of the device as returned by the host operating system

4.9 Full document level XMP sample

This is the full document level XMP packet for a 3 page document that was completed on an iPad pro:

<?xml version="1.0"?>
<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="document"/>
<wgss:PageIDList<wgss:PageIDList>
<rdf:Bag>
<rdf:li wgss:pdfPage="1" wgss:uuid="1234567" />
<rdf:li wgss:pdfPage="3" wgss:uuid="1234568" />
<rdf:li wgss:pdfPage="2" wgss:uuid="1234569" />
</rdf:Bag>
</wgss:PageIDList>
<wgss:PageCompletionOrder>
<rdf:Seq>
<rdf:li>1</rdf:li>
<rdf:li>2</rdf:li>
<rdf:li>3</rdf:li>
</rdf:Seq>
</wgss:PageCompletionOrder>
<wgss:AuthoringTool wgss:version="1.0" wgss:toolname="Barbera Authoring Library"/>
<wgss:DocumentCompletionTime>2016-06-17T13:32:45.5316112Z</wgss:DocumentCompletionTime>
<wgss:SmartPad wgss:id="1234567890" wgss:deviceName="Joss Barbera Device"/>
<wgss:SmartPadCharacteristics wgss:unit="inch" wgss:pointsPerUnit="200" wgss:width="10400" wgss:height="10400"/>
<wgss:ClientApp wgss:version="1.0" wgss:os="iOS" wgss:applicationName="barbera for iOS"/>
<wgss:ClientDevice wgss:id="1234567890" wgss:deviceClass="iPad" wgss:deviceName="Joss' iPad Pro"/>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

5. Page Level Definitions Section

This section defines the fields that can be set in a page level XMP packet, including:

  • Page ID
  • Field ID list
  • Pen Data

These settings relate to a particular page within a document. The XMP packet is embedded into the metadata stream for the PDF page that it relates to.

5.1 Page ID

This element identifies the XMP packet within the document (ie this packet applies for PDF Page blah with barcode blah)

<wgss:PageID wgss:pdfPage="1" wgss:uuid="1234567" wgss:uuid_type="Code128"/>

5.2 Field IDs for Page

This element lists the field IDs for the current page:

<wgss:FieldIDList>
<rdf:Bag>
<rdf:li>142532</rdf:li>
<rdf:li>142533</rdf:li>
<rdf:li>142534</rdf:li>
</rdf:Bag>
</wgss:FieldIDList>

FieldIDs correspond to the underlying AcroForm objects PDFName (T:).

5.3 Pen Data

This element contains all pen data captured outside active areas on the page:

<wgss:PenData>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<!-- sequence of points for stroke -->
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="10" wgss:y="13" wgss:w="53" wgss:inkColor="#FFFFFF"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="11" wgss:y="14" wgss:w="52"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="12" wgss:y="16" wgss:w="48"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="13" wgss:y="14" wgss:w="10"/>
</rdf:li>
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
</rdf:Seq>
</wgss:PenData>

The format is defined in section 3.2 ‘Pen Data’.

5.4 Full Page Level XMP Sample

Here is a full sample of a page level XMP packet:

<?xml version="1.0"?>
<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://www.w3.org/">
<wgss:PacketType wgss:level="page"/>
<wgss:PageID wgss:pdfPage="1" wgss:uuid="1234567"/>
<wgss:FieldIDList>
<rdf:Bag>
<rdf:li>142532</rdf:li>
<rdf:li>142533</rdf:li>
<rdf:li>142534</rdf:li>
</rdf:Bag>
</wgss:FieldIDList>
<wgss:PenData>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<!-- sequence of points for stroke -->
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="10" wgss:y="13" wgss:w="53" wgss:inkColor="#FFFFFF"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="11" wgss:y="14" wgss:w="52"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="12" wgss:y="16" wgss:w="48"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="13" wgss:y="14" wgss:w="10"/>
</rdf:li>
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
</rdf:Seq>
</wgss:PenData>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

The sample defines the data for the second page of a PDF document, with a barcode of 1234569. The page has 3 active fields, and one stroke has been captured outside any active areas.

6. Object Level Definitions Section

This section defines the fields that can be set in an object level XMP packet, including:

  • Field ID
  • Field Location
  • Field type
  • Tag
  • Required
  • Pen Data
  • Completion Time

These settings relate to a particular object within a PDF document. The XMP packet is embedded into the metadata stream for the AcroForm object that it relates to.

6.1 Common attributes for object level fields

This section lists values that are common between all field types.

6.1.1 Field UUID

The UUID element specifies the UUID for the field:

<wgss:FieldUUID wgss:pdfID="5A234" wgss:fieldID="12345"/>
AttributeDetail
pdfIDThe Nameof the underlying PDF object
fieldIDIDML Specific Field ID

6.1.2 Field Location

The field location element specifies the location of the active area on the page:

<wgss:FieldLocation wgss:x="123" wgss:y="345" wgss:w="100" wgss:h="300"/>

The location is a rectangle defined by an origin and a size element. The values are defined in PDF coordinates, with the following attributes:

AttributeDetail
xThe X coordinate of the origin for the active area
yThe Y coordinate of the origin for the active area
wThe width for the active area
hThe height for the active area

6.1.3 Field Type

The field type attribute defines the field type of the active are:

<wgss:FieldType>Text</wgss:FieldType>

The field type can be one of the following values

Field TypeDetail
TextThe area is hand written text for HWR conversion
NumberThe area contains hand written numerics for HWR
BooleanThe area is a check box
SignatureThe area is a hand written signature
FreehandThe area is used for freehand input (not converted)

Specific details for each active area type are listed in the following sections.

6.1.3.1 Text

The field type "Text" is used for areas in the document where a user would write freehand text that should be converted using the HWR technology, such as the customer name. This type has no additional attributes.

6.1.3.2 Number

The field type "Number" is used for areas in the document where a user would write freehand number data that should be converted using the HWR technology, such as a total price field. This type has no additional attributes.

6.1.3.3 Boolean

The field type "Boolean" is used for checkbox areas in the document. Where a user writes in a checkbox this should be converted to a true or false value. This type has no additional attributes.

6.1.3.4 Signature

The field type "Signature" defines an area that is used for signature capture. This type supports the following additional elements:

For signature data, the element contains either base64 encoded FSS data in the case of non-encrypted signature data, or encrypted base64 encoded FSS data in the case of an encrypted signature. Addtionally, a signature field can add the following elements:

Element NameDetail
NameThe signatory name
ReasonThe signatory reason
EncryptedIf the encrypted attribute is true, then recorded signature data should be encrypted using the public key encryption.
If the signature is not encrypted, then the signature data is stored in base64 encoded FSS data (see 6.1.9 ‘Data’ for a more detailed description of how signature data is recorded).
KeyNameFor encypted signatures, this is the name of the public key used to encrypt

6.1.3.5 Freehand

The field type "Freehand" is used to mark areas that are to be used for freehand input that is not converted. This type has no additional attributes.

6.1.4 Tag

The tag element gives a user configurable name for the particular field:

<wgss:FieldTag>FirstName</wgss:FieldTag>

This is used to enable post processing of a document in workflows, where the user can define IDs that have contextual information for the field.

6.1.5 Required

The required element defines if a particular area on a page must be completed before the page can be ‘finished’:

<wgss:Required>True</wgss:Required>

If a page has any areas that are required, then that page implicitly becomes a required page for the document, and the page must be completed before the document can be finished.

6.1.6 Pen Data

The pen data element stores the pen data collected in the active area:

<wgss:PenData>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<!-- sequence of points for stroke -->
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="10" wgss:y="13" wgss:w="53" wgss:inkColor="#FFFFFF"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="11" wgss:y="14" wgss:w="52"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="12" wgss:y="16" wgss:w="48"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="13" wgss:y="14" wgss:w="10"/>
</rdf:li>
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
</rdf:Seq>
</wgss:PenData>

enables post-processing of any area if required. The data format is detailed in section 3.2 ‘Pen Data’.

6.1.7 Completion Time

The FieldCompletionTime element defines when data was last captured in a field:

<wgss:FieldCompletionTime>2016-06-17T13:32:45.5316112Z</wgss:FieldCompletionTime>

The time is specified in ISO–8601 format (“yyyy-MM-dd’T’HH:mm:ss.fffffffZ”") in UTC.

6.1.8 Data

The data element is used to store the translated data (if any) from the active area:

<wgss:Data>Joss</wgss:Data>

In the case of text and number fields, this is simply the data as returned by the HWR system. For signature data, the element contains either base64 encoded FSS data in the case of non-encrypted signature data, or encrypted base64 encoded FSS data in the case of an encrypted signature. Addtionally, a signature field can add the following elements:

Element NameDetail
NameThe signatory name
ReasonThe signatory reason
KeyNameFor encypted signatures, this is the name of the public key used to encrypt
<wgss:Name>Joss Giffard-Burley</wgss:Name>
<wgss:Reason>Reason</wgss:Reason>
<wgss:KeyName>JossSuperKey</wgss:KeyName>

6.2 Object level XMP sample packet

Here is a full object level XMP sample packet:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://www.w3.org/">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID>127001</wgss:FieldUUID>
<wgss:FieldLocation wgss:x="123" wgss:y="345" wgss:w="100" wgss:h="300"/>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:FieldTag>FirstName</wgss:FieldTag>
<wgss:Required>True</wgss:Required>
<wgss:Encrypted>True</wgss:Encrypted>
<wgss:PenData>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<wgss:Stroke>
<rdf:Seq>
<!-- sequence of points for stroke -->
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="10" wgss:y="13" wgss:w="53" wgss:inkColor="#FFFFFF"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="11" wgss:y="14" wgss:w="52"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="12" wgss:y="16" wgss:w="48"/>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<wgss:Point wgss:x="13" wgss:y="14" wgss:w="10"/>
</rdf:li>
</rdf:Seq>
</wgss:Stroke>
</rdf:li>
</rdf:Seq>
</wgss:PenData>
<wgss:FieldCompletionTime>2016-06-17T13:32:45.5316112Z</wgss:FieldCompletionTime>
<wgss:Data>Joss</wgss:Data>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

Below is a sample consent form from the NHS that we will use as a worked example. This is a 1 page PDF document with 18 active areas. The example shows the structure and format of the XMP packets required to enable the PDF document to be used with the barbera system:

Sample PDF

The active areas of the form are (proposed field type in brackets):

  • Center number (Number)
  • Study Number (Number)
  • Patient ID number for trial (Number)
  • Project Title (Text)
  • Researcher Name (Text)
  • Information Sheet Date (Text)
  • Information Sheet Version (Text)
  • Consent Checkbox 1 - Consent (Boolean)
  • Consent Checkbox 2 - Provision for withdrawal (Boolean)
  • Company Name (Text)
  • Consent Checkbox 3 - Consent for data to be passed to company (Boolean)
  • Consent Checkbox 4 - I Agree for GP access (Boolean)
  • Consent Checkbox 5 - I Agree to take part (Boolean)
  • Participant Name (Text)
  • Date 1 (Text)
  • Participant signature (Signature)
  • Name of person (Text)
  • Date (Text)
  • Person Signature (Text)

In this example, all fields are required for the form to be considered complete.

7.1 XMP packets before data capture

This section demonstrates what the XMP packetes for the document, page and object levels will look like before capture.

7.1.1 Document level XMP packet

Every document has one and only one document level XMP packet. As this document has only one page, the document level packet is fairly basic:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="document"/>
<wgss:PageList>
<rdf:Bag>
<rdf:li>
<wgss:PageID wgss:pdfPage="1" wgss:uuid="127001"/>
</rdf:li>
</rdf:Bag>
</wgss:PageList>
<wgss:PageOrder>
<rdf:Seq>
<rdf:li>1</rdf:li>
</rdf:Seq>
</wgss:PageOrder>
<wgss:AuthoringTool wgss:version="1.0" wgss:toolname="Barbera Authoring Library"/>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

This assumes that the barcode on the document has the value of 127001.

7.1.2 Page Level XMP packet

As this document has only one page, there is only one page level XMP packet:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="page"/>
<wgss:FieldIDList>
<rdf:Bag>
<rdf:li>1</rdf:li>
<rdf:li>2</rdf:li>
<rdf:li>3</rdf:li>
<rdf:li>4</rdf:li>
<rdf:li>5</rdf:li>
<rdf:li>6</rdf:li>
<rdf:li>7</rdf:li>
<rdf:li>8</rdf:li>
<rdf:li>9</rdf:li>
<rdf:li>10</rdf:li>
<rdf:li>11</rdf:li>
<rdf:li>12</rdf:li>
<rdf:li>13</rdf:li>
<rdf:li>14</rdf:li>
<rdf:li>15</rdf:li>
<rdf:li>16</rdf:li>
<rdf:li>17</rdf:li>
<rdf:li>18</rdf:li>
<rdf:li>19</rdf:li>
</rdf:Bag>
</wgss:FieldIDList>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

you can see, this defines the correct barcode ID and lists the ID for the 19 active areas on the page.

7.1.3 Object Level XMP packets.

This document has 19 Object level XMP packets, each described in the sections below.

7.1.3.1 Center number (Number)

The field is for the ‘Center Number’ on the PDF document. This will be handwritten numerical data that we want the HWR to convert, so the field type is Number:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A234" wgss:fieldID="1"/>
<wgss:FieldLocation wgss:x="300" wgss:y="300" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Center_Number</wgss:FieldTag>
<wgss:FieldType>Number</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.2 Study Number (Number)

The field is for the ‘Study Number’ on the PDF document. This will be handwritten numerical data that we want the HWR to convert, so the field type is Number:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A235" wgss:fieldID="2"/>
<wgss:FieldLocation wgss:x="300" wgss:y="320" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Study_Number</wgss:FieldTag>
<wgss:FieldType>Number</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.3 Patient ID number for trial (Number)

The field is for the ‘Patient ID’ on the PDF document. This will be handwritten numerical data that we want the HWR to convert, so the field type is Number:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A236" wgss:fieldID="3"/>
<wgss:FieldLocation wgss:x="300" wgss:y="340" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Patient_ID</wgss:FieldTag>
<wgss:FieldType>Number</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.4 Project Title (Text)

The field is for the ‘Project Title’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A290" wgss:fieldID="4"/>
<wgss:FieldLocation wgss:x="300" wgss:y="510" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Project_Title</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.5 Researcher Name (Text)

The field is for the ‘Researcher Name’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A291" wgss:fieldID="5"/>
<wgss:FieldLocation wgss:x="335" wgss:y="560" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Researcher_Name</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.6 Information Sheet Date (Text)

The field is for the ‘Sheet Date’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A296" wgss:fieldID="6"/>
<wgss:FieldLocation wgss:x="810" wgss:y="660" wgss:w="460" wgss:h="50"/>
<wgss:FieldTag>Sheet_Date</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.7 Information Sheet Version (Text)

The field is for the ‘Sheet Version’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A297" wgss:fieldID="7"/>
<wgss:FieldLocation wgss:x="200" wgss:y="675" wgss:w="200" wgss:h="50"/>
<wgss:FieldTag>Sheet_Version</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

The field is for the first consent checkbox on the PDF document. This will be an area that the user ticks, so the field type is boolean:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="35242" wgss:fieldID="8"/>
<wgss:FieldLocation wgss:x="1038" wgss:y="660" wgss:w="60" wgss:h="60"/>
<wgss:FieldTag>Checkbox_1</wgss:FieldTag>
<wgss:FieldType>Boolean</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

The field is for the second consent checkbox on the PDF document. This will be an area that the user ticks, so the field type is boolean:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A299" wgss:fieldID="9"/>
<wgss:FieldLocation wgss:x="1038" wgss:y="787" wgss:w="60" wgss:h="60"/>
<wgss:FieldTag>Checkbox_2</wgss:FieldTag>
<wgss:FieldType>Boolean</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.10 Company Name (Text)

The field is for the ‘Company name’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5A300" wgss:fieldID="10"/>
<wgss:FieldLocation wgss:x="200" wgss:y="675" wgss:w="200" wgss:h="50"/>
<wgss:FieldTag>Company_Name</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

The field is for the third consent checkbox on the PDF document. This will be an area that the user ticks, so the field type is boolean:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5B000" wgss:fieldID="11"/>
<wgss:FieldLocation wgss:x="1038" wgss:y="918" wgss:w="60" wgss:h="60"/>
<wgss:FieldTag>Checkbox_3</wgss:FieldTag>
<wgss:FieldType>Boolean</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

The field is for the forth consent checkbox on the PDF document. This will be an area that the user ticks, so the field type is boolean:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="614EA" wgss:fieldID="12"/>
<wgss:FieldLocation wgss:x="1038" wgss:y="660" wgss:w="60" wgss:h="60"/>
<wgss:FieldTag>Checkbox_4</wgss:FieldTag>
<wgss:FieldType>Boolean</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

The field is for the forth consent checkbox on the PDF document. This will be an area that the user ticks, so the field type is boolean:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="71BAEF" wgss:fieldID="13"/>
<wgss:FieldLocation wgss:x="1038" wgss:y="1220" wgss:w="60" wgss:h="60"/>
<wgss:FieldTag>Checkbox_5</wgss:FieldTag>
<wgss:FieldType>Boolean</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.14 Participant Name (Text)

The field is for the ‘Participant Name’ on the PDF document. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="FE315" wgss:fieldID="14"/>
<wgss:FieldLocation wgss:x="60" wgss:y="1340" wgss:w="230" wgss:h="90"/>
<wgss:FieldTag>Participant_Name</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.15 Date 1 (Text)

The field is for the ‘Date’ on the PDF document, next to participant name. This will be handwritten tex we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="AA331" wgss:fieldID="15"/>
<wgss:FieldLocation wgss:x="450" wgss:y="1340" wgss:w="230" wgss:h="90"/>
<wgss:FieldTag>Date_1</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.16 Participant signature (Signature)

The field is for the ‘Participant Signature’ on the PDF document. This will be a digital signature field, so the type will be signature:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="AB33612" wgss:fieldID="16"/>
<wgss:FieldLocation wgss:x="745" wgss:y="1340" wgss:w="230" wgss:h="90"/>
<wgss:FieldTag>Participant_Signature</wgss:FieldTag>
<wgss:FieldType>Signature</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.17 Name of person (Text)

The field is for the ‘Name of Person’ on the PDF document. This will be handwritten text we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="B31DE" wgss:fieldID="17"/>
<wgss:FieldLocation wgss:x="60" wgss:y="1440" wgss:w="230" wgss:h="50"/>
<wgss:FieldTag>Name_of_Person</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.18 Date (Text)

The field is for the ‘Date’ on the PDF document, next to the ‘Name of Person’ field. This will be handwritten text we want the HWR to convert, so the field type is Text:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="771DC" wgss:fieldID="18"/>
<wgss:FieldLocation wgss:x="450" wgss:y="1400" wgss:w="230" wgss:h="50"/>
<wgss:FieldTag>Date_2</wgss:FieldTag>
<wgss:FieldType>Text</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.

7.1.3.19 Person Signature (Text)

The field is for the ‘Person Signature’ on the PDF document. This will be a digital signature field, so the type will be signature:

<?xpacket begin="￯" id="W5M0MpCehiHzreSzNTczkc9d"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:wgss="http://wacomgss.com/barbera/1.0/">
<rdf:Description rdf:about="http://signature.wacom.eu">
<wgss:PacketType wgss:level="field"/>
<wgss:FieldUUID wgss:pdfID="5E3115234" wgss:fieldID="19"/>
<wgss:FieldLocation wgss:x="745" wgss:y="1400" wgss:w="230" wgss:h="90"/>
<wgss:FieldTag>Person_Signature</wgss:FieldTag>
<wgss:FieldType>Signature</wgss:FieldType>
<wgss:Required>True</wgss:Required>
</rdf:Description>
</rdf:RDF>
<?xpacket end="w"?>

As all fields on the PDF are mandatory, this field has the required attribute set to true.