### Contiguous Table Cell Range Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/C2PA_Specification.html Specifies a contiguous range of table cells within a document. This example shows how to define a start and end cell for a range. ```json { "region": [ { "type": "textual", "text" : { "selectors" : [ [ { "selector" : { "fragment" : "xpointer(//table[1]/tr[1]/td[2])" }, "end" : { "fragment" : "xpointer(//table[1]/tr[1]/td[4])" } } ] ] } } ], "description": "cleared some table cells" } ``` -------------------------------- ### Action and Template Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.1/specs/ContentCredentials.html Demonstrates how actions and templates are combined to provide a full picture of an action. Use when defining reusable action configurations. ```json { "actions": [ { "action": "com.joesphoto.filter", "when": 0("2020-02-11T09:00:00Z") }, { "action": "c2pa.edited", "when": 0("2020-02-11T09:10:00Z") }, { "action": "com.joesphoto.filter", "when": 0("2020-02-11T09:20:00Z") }, { "action": "c2pa.cropped", "when": 0("2020-02-11T09:30:00Z") } ], "templates": [{ "action": "com.joesphoto.filter", "description": "Magic Filter", "digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/compositeSynthetic", "softwareAgent" : { "name": "Joe's Photo Editor", "version": "2.0", "operating_system": "Windows 10" } }] } ``` -------------------------------- ### Run Quote Verification Sample Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/1.4/attestations/attestation.html Execute the sample application with the -quote option to provide the path to your quote.dat file for verification. ```bash ./app -quote ~/quote.dat ``` -------------------------------- ### Font Table Hashes Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.3/specs/ContentCredentials.html Example JSON structure showing hashes for various font tables. Used when a box hash assertion needs to be created but start and length values are not yet known. ```json { "names" : ["gasp"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["glyf"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["head"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["hhea"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["hmtx"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["loca"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["maxp"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["name"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["post"], "hash" : b64'வுகளை', "pad" : b64'' }, { "names" : ["prep"], "hash" : b64'வுகளை', "pad" : b64'' } ] ``` -------------------------------- ### Action Template Example for All Actions Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/ContentCredentials.html Illustrates using the special '*' action to apply a template to all actions in a manifest. This is useful for setting general metadata or agent information. ```json { "actions": [ { "action": "c2pa.created", "when": 0("2024-03-09T20:04Z") }, { "action": "c2pa.edited", "when": 0("2025-02-11T09:10:00Z") }, { "action": "c2pa.cropped", "when": 0("2025-02-11T09:30:00Z") } ], "templates": [{ "action": "*", "digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/humanEdits", "softwareAgent" : { "name": "Jane's Human Authoring Tool", "version": "1.0" } }] } ``` -------------------------------- ### Example self#jumbf URIs Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.1/specs/ContentCredentials.html These examples demonstrate valid `self#jumbf` URIs for referencing embedded data within a C2PA Manifest Store. One is relative to the entire store, starting with '/', and the other is relative to the current manifest. ```text self#jumbf=/c2pa/urn:c2pa:F095F30E-6CD5-4BF7-8C44-CE8420CA9FB7/c2pa.assertions/c2pa.thumbnail.claim.jpeg ``` ```text self#jumbf=c2pa.assertions/c2pa.thumbnail.claim.jpeg ``` -------------------------------- ### Contiguous Table Cell Range Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.3/specs/C2PA_Specification.html Defines a contiguous range of table cells using xpointer selectors for both start and end fragments. ```json { "region": [ { "type": "textual", "text" : { "selectors" : [ [ { "selector" : { "fragment" : "xpointer(//table[1]/tr[1]/td[2])", }, "end" : { "fragment" : "xpointer(//table[1]/tr[1]/td[4])", } } ] ] } }, ], "description": "cleared some table cells" } ``` -------------------------------- ### Example self#jumbf URIs Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/C2PA_Specification.html Illustrates valid 'self#jumbf' URIs, showing examples relative to the entire store and relative to the manifest of the containing box. ```text self#jumbf=/c2pa/urn:c2pa:F095F30E-6CD5-4BF7-8C44-CE8420CA9FB7/c2pa.assertions/c2pa.thumbnail.claim self#jumbf=c2pa.assertions/c2pa.thumbnail.claim ``` -------------------------------- ### Localized Custom Actions Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.4/specs/C2PA_Specification.html Shows how to localize custom actions like 'com.litware.blur' and 'com.litware.filter' using a localization dictionary with translations for various locales. ```json { "com.litware.blur": { "en-US": "Blur", "fr-FR": "Brouiller", }, "com.litware.filter": { "en-US": "Filter", "es-ES": "Filtrar", "ja-JP": "フィルター" } } ``` -------------------------------- ### Frame Range Example (Page Deletion) Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/C2PA_Specification.html Represents a range of frames, typically used to indicate the deletion of specific pages from a document like a PDF. Specifies a start and end frame. ```json { "region": [ { "type": "frame", "frame" : { "start" : 27, "end" : 30 } } ], "description": "unnecessary pages removed before distribution" } ``` -------------------------------- ### JSON Schema Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/ContentCredentials.html Demonstrates a JSON structure for content credentials, including basic fields. ```json { "name": "John Doe", "url": "https://fabrikam.example.com/jdoefonts" } } ] } ``` -------------------------------- ### Contiguous Table Cells Region Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.0/specs/C2PA_Specification.html Specifies a contiguous range of table cells using xpointers for both the start and end selectors. Used for operations like clearing content within a table structure. ```json { "region": [ { "type": "textual", "text" : { "selectors" : [ [ { "selector" : { "fragment" : "xpointer(//table[1]/tr[1]/td[2])", }, "end" : { "fragment" : "xpointer(//table[1]/tr[1]/td[4])", } } ] ] } }, ], "role": "c2pa.cleared", "description": "cleared some table cells" } ``` -------------------------------- ### Example self#jumbf URIs Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.2/specs/ContentCredentials.html Illustrates valid `self#jumbf` URIs for referencing content within the same JUMBF. One example is relative to the entire store, and the other is relative to the current manifest. ```text self#jumbf=/c2pa/urn:c2pa:F095F30E-6CD5-4BF7-8C44-CE8420CA9FB7/c2pa.assertions/c2pa.thumbnail.claim ``` ```text self#jumbf=c2pa.assertions/c2pa.thumbnail.claim ``` -------------------------------- ### Tagged PDF Textual Range Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/2.4/specs/ContentCredentials.html Specifies a textual range within a tagged PDF file, including specific start and end points. Use this for precise annotation or modification tracking in structured PDFs. ```json { "region": [ { "type": "textual", "text" : { "selectors" : [ [ { "selector" : { "fragment" : "path=/Document/Sect[0]/P[3]", "start" : 10, "end" : 20 } } ] ] } }, ], "description": "Redaction performed as per FOIA request" } ``` -------------------------------- ### C2PA Claim Generator Hints Example Source: https://github.com/c2pa-org/specifications/blob/main/build/site/specifications/1.0/specs/C2PA_Specification.html Demonstrates the use of `claim_generator_hints` to provide additional information about the claim generator, including client hints. This allows for more detailed software and platform identification. ```json { "claim_generator": "Joe's Photo Editor/2.0 (Windows 10)", "claim_generator_hints" : { "Sec-CH-UA": "Joe's Photo Editor", "Sec-CH-UA-Full-Version": "2.0", "Sec-CH-UA-Platform": "Windows" } } ```