changedInput schema / properties / creationDate / description
Previous value: -"ISO-8601 instant for /CreationDate (+ XMP). Pin it for byte-identical output across calls (same host TZ); omitted = wall clock, so every call differs."New value: +"ISO-8601 instant for /CreationDate (+ XMP, the trailer /ID and the {date} placeholder), written in UTC. Pin it for byte-identical output across calls and hosts; omitted = wall clock, so every call differs."
changedInput schema / properties / embedFonts / description
Previous value: -"Embed Noto Sans Latin instead of the viewer base-14 Helvetica. REQUIRED for a valid PDF/A claim (ISO 19005 §6.2.11.4.1) and for strict=true; adds ~0.3 MiB."New value: +"Embed Noto Sans Latin instead of the viewer base-14 Helvetica. REQUIRED for a valid PDF/A or PDF/X claim (every font embedded) and for strict=true; adds ~0.3 MiB."
changedInput schema / properties / footerTemplate / properties / center / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
addedInput schema / properties / footerTemplate / properties / color / anyOf
Added value: +[
+ {
+ "pattern": "^#[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ {
+ "description": "DeviceCMYK operands 'C M Y K', each 0.0–1.0.",
+ "pattern": "^(?:0(?:\\.\\d+)?|1(?:\\.0+)?)(?: (?:0(?:\\.\\d+)?|1(?:\\.0+)?)){3}$",
+ "type": "string"
+ },
+ {
+ "description": "DeviceCMYK ink percentages [c, m, y, k], each 0–100.",
+ "items": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxItems": 4,
+ "minItems": 4,
+ "type": "array"
+ }
+]
changedInput schema / properties / footerTemplate / properties / color / description
Previous value: -"Hex colour."New value: +"Hex colour (#RRGGBB)."
removedInput schema / properties / footerTemplate / properties / color / pattern
Removed value: -"^#[0-9a-fA-F]{6}$"
removedInput schema / properties / footerTemplate / properties / color / type
Removed value: -"string"
changedInput schema / properties / footerTemplate / properties / left / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
changedInput schema / properties / footerTemplate / properties / right / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
changedInput schema / properties / headerTemplate / properties / center / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
addedInput schema / properties / headerTemplate / properties / color / anyOf
Added value: +[
+ {
+ "pattern": "^#[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ {
+ "description": "DeviceCMYK operands 'C M Y K', each 0.0–1.0.",
+ "pattern": "^(?:0(?:\\.\\d+)?|1(?:\\.0+)?)(?: (?:0(?:\\.\\d+)?|1(?:\\.0+)?)){3}$",
+ "type": "string"
+ },
+ {
+ "description": "DeviceCMYK ink percentages [c, m, y, k], each 0–100.",
+ "items": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxItems": 4,
+ "minItems": 4,
+ "type": "array"
+ }
+]
changedInput schema / properties / headerTemplate / properties / color / description
Previous value: -"Hex colour."New value: +"Hex colour (#RRGGBB)."
removedInput schema / properties / headerTemplate / properties / color / pattern
Removed value: -"^#[0-9a-fA-F]{6}$"
removedInput schema / properties / headerTemplate / properties / color / type
Removed value: -"string"
changedInput schema / properties / headerTemplate / properties / left / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
changedInput schema / properties / headerTemplate / properties / right / description
Previous value: -"Placeholders: {page} {pages} {title} {date} (build-day wall clock, not creationDate)."New value: +"Placeholders: {page} {pages} {title} {date} (UTC date of creationDate when pinned, else of the build)."
changedInput schema / properties / includeDiagnostics / description
Previous value: -"Return the PDF/A diagnostics raised while building as `diagnostics[]` (possibly empty)."New value: +"Return the diagnostics raised while building (PDFA_*, PDFX_*, TYPOGRAPHY_*) as `diagnostics[]` (possibly empty)."
changedInput schema / properties / outputIntent / description
Previous value: -"Custom PDF/A OutputIntent: an RGB ICC profile + condition strings replacing the built-in sRGB intent (CMYK rejected)."New value: +"Custom OutputIntent (under pdfA or pdfx): an RGB, CMYK or Gray ICC profile + condition strings, replacing the built-in sRGB intent. The profile must be a real ICC file ('acsp' signature, consistent size — PRINT_ERROR otherwise); pdfx needs device class 'prtr'. Under a CMYK / Gray intent RGB content is mapped through a calibrated default space."
changedInput schema / properties / outputIntent / properties / iccProfileBase64 / description
Previous value: -"ICC profile bytes, base64 (RGB, ≤ 8 MiB)."New value: +"ICC profile bytes, base64 (RGB, CMYK or Gray; ≤ 8 MiB)."
changedInput schema / properties / print / properties / marks / oneOf
Previous value: -[
- {
- "type": "boolean"
- },
- {
- "additionalProperties": false,
- "properties": {
- "crop": {
- "description": "Corner crop (trim) marks. Default true.",
- "type": "boolean"
- },
- "length": {
- "description": "Mark length in points. Default 14.",
- "maximum": 100,
- "minimum": 1,
- "type": "number"
- },
- "offset": {
- "description": "Gap between TrimBox and marks in points. Default 5.",
- "maximum": 100,
- "minimum": 0,
- "type": "number"
- },
- "registration": {
- "description": "Edge-midpoint registration targets. Default true.",
- "type": "boolean"
- },
- "weight": {
- "description": "Stroke width in points. Default 0.25.",
- "maximum": 5,
- "minimum": 0.05,
- "type": "number"
- }
- },
- "type": "object"
- }
-]New value: +[
+ {
+ "type": "boolean"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "colourBars": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "size": {
+ "description": "Patch size in points. Default 12.",
+ "maximum": 72,
+ "minimum": 4,
+ "type": "number"
+ },
+ "tints": {
+ "description": "Add the four 50 % tint patches. Default true.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "Colour control strip in the bleed (C M Y K solids + their 50 % tints): true for defaults. Off by default; needs a bleed of about 5 mm (14.17 pt) and is skipped when the strip would not fit."
+ },
+ "crop": {
+ "description": "Corner crop (trim) marks. Default true.",
+ "type": "boolean"
+ },
+ "length": {
+ "description": "Mark length in points. Default 14.",
+ "maximum": 100,
+ "minimum": 1,
+ "type": "number"
+ },
+ "offset": {
+ "description": "Gap between TrimBox and marks in points. Default 5.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "registration": {
+ "description": "Edge-midpoint registration targets. Default true.",
+ "type": "boolean"
+ },
+ "weight": {
+ "description": "Stroke width in points. Default 0.25.",
+ "maximum": 5,
+ "minimum": 0.05,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+]
changedInput schema / properties / strict / description
Previous value: -"Fail with PDF_A_COMPLIANCE_VIOLATION instead of producing a non-conformant PDF/A file (e.g. PDFA_NO_FONT_ENTRIES without embedFonts). Pair with embedFonts=true."New value: +"Fail instead of producing a file the engine warns about: a PDFA_* diagnostic → PDF_A_COMPLIANCE_VIOLATION (e.g. PDFA_NO_FONT_ENTRIES without embedFonts), a PDFX_* one → PDF_X_COMPLIANCE_VIOLATION, any other → DIAGNOSTIC_ESCALATED. Pair with embedFonts=true."
addedInput schema / properties / typography
Added value: +{
+ "additionalProperties": false,
+ "description": "Fine typography, all opt-in (omitted = unchanged bytes). kerning, fontFeatures and the 'fr' narrow space need embedFonts:true. No hyphenation dictionary is installed: use soft hyphens (U+00AD). See the typography prompt.",
+ "properties": {
+ "bindShortWords": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "maxLength": {
+ "maximum": 3,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "words": {
+ "items": {
+ "maxLength": 16,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "Never end a line on a short word: up to maxLength letters (default 1), or exactly the listed words."
+ },
+ "fontFeatures": {
+ "description": "OpenType features, later wins. tnum / lnum are no-ops on Noto Sans (TYPOGRAPHY_FEATURE_INEFFECTIVE).",
+ "items": {
+ "enum": [
+ "tnum",
+ "pnum",
+ "lnum",
+ "onum",
+ "zero",
+ "ordn",
+ "sups",
+ "subs",
+ "smcp",
+ "c2sc",
+ "case"
+ ],
+ "type": "string"
+ },
+ "maxItems": 11,
+ "type": "array",
+ "uniqueItems": true
+ },
+ "hyphenationLanguage": {
+ "description": "BCP 47 tag; no effect here (no hyphenation provider installed).",
+ "maxLength": 35,
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
+ "type": "string"
+ },
+ "keepHeadingsWithNext": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "minLines": {
+ "maximum": 10,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "Never strand a heading at a page foot. true = { minLines: 2 }."
+ },
+ "kerning": {
+ "description": "Pair kerning (GPOS).",
+ "type": "boolean"
+ },
+ "metrics": {
+ "description": "Base-14 text: 'exact' uses the AFM widths (different wraps). Default 'approximate'.",
+ "enum": [
+ "approximate",
+ "exact"
+ ],
+ "type": "string"
+ },
+ "opticalMargins": {
+ "description": "Hang punctuation into the margin of align:'justify' text.",
+ "type": "boolean"
+ },
+ "orphans": {
+ "description": "Min lines left at a page foot (default 2; needs splitParagraphs).",
+ "maximum": 10,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "punctuationSpacing": {
+ "anyOf": [
+ {
+ "enum": [
+ "fr",
+ "fr-CA"
+ ],
+ "type": "string"
+ },
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "char": {
+ "maxLength": 2,
+ "minLength": 1,
+ "type": "string"
+ },
+ "side": {
+ "enum": [
+ "before",
+ "after"
+ ],
+ "type": "string"
+ },
+ "space": {
+ "description": "U+00A0 / U+202F (narrow needs embedFonts).",
+ "enum": [
+ "nbsp",
+ "narrow"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "char",
+ "side",
+ "space"
+ ],
+ "type": "object"
+ },
+ "maxItems": 32,
+ "type": "array"
+ }
+ ],
+ "description": "No-break spaces next to punctuation (existing spaces only). 'fr': narrow before ; ! ?, no-break before ':' and inside « ». 'fr-CA': ':' and « » only. Or explicit rules."
+ },
+ "splitParagraphs": {
+ "description": "Paragraphs may break across pages at a line boundary (default: atomic).",
+ "type": "boolean"
+ },
+ "unitBinding": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "units": {
+ "items": {
+ "maxLength": 16,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 100,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "No-break space between a number and its unit ('150 €', '12 kg'); units replaces the built-in list."
+ },
+ "widows": {
+ "description": "Min lines carried over (default 2; needs splitParagraphs).",
+ "maximum": 10,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+}
changedOutput schema / properties / diagnostics / description
Previous value: -"PDF/A diagnostics (when includeDiagnostics=true)."New value: +"Engine diagnostics (when includeDiagnostics=true)."