8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
185 lines
4.9 KiB
JSON
185 lines
4.9 KiB
JSON
{
|
|
"$schema": "../_schema.json",
|
|
"format": "docx",
|
|
"element": "header",
|
|
"parent": "/",
|
|
"addParent": "/",
|
|
"operations": {
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"query": true,
|
|
"remove": true
|
|
},
|
|
"paths": {
|
|
"positional": [
|
|
"/header[N]"
|
|
]
|
|
},
|
|
"note": "Headers are stored in HeaderParts and referenced by the last sectPr. Duplicate type rejected at Add. 'first' type auto-enables TitlePage. Field insertion uses complex fldChar (begin/instr/separate/result/end). A single Add supports at most one text + one field pair; composite headers like 'Page X of Y' must be built in steps by adding additional runs/fields to the header's paragraph (/header[N]/p[1]) after creation — see examples.",
|
|
"examples": [
|
|
"Simple page-number header: officecli add file.docx / --type header --prop field=page --prop align=right",
|
|
"'Page X of Y' — build in steps after creating the header:",
|
|
" 1) officecli add file.docx / --type header --prop text=\"Page \" --prop align=right",
|
|
" 2) officecli add file.docx \"/header[1]/p[1]\" --type field --prop fieldType=page",
|
|
" 3) officecli add file.docx \"/header[1]/p[1]\" --type run --prop text=\" of \"",
|
|
" 4) officecli add file.docx \"/header[1]/p[1]\" --type field --prop fieldType=numpages"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "enum",
|
|
"description": "header scope.",
|
|
"values": [
|
|
"default",
|
|
"first",
|
|
"even"
|
|
],
|
|
"aliases": [
|
|
"kind",
|
|
"ref"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop type=default"
|
|
],
|
|
"readback": "innerText of HeaderFooterValues",
|
|
"enforcement": "strict"
|
|
},
|
|
"text": {
|
|
"type": "string",
|
|
"description": "header text (single run).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop text=\"My Header\""
|
|
],
|
|
"readback": "concatenated Text.Descendants",
|
|
"enforcement": "strict"
|
|
},
|
|
"align": {
|
|
"type": "enum",
|
|
"values": [
|
|
"left",
|
|
"center",
|
|
"right",
|
|
"justify",
|
|
"both",
|
|
"distribute"
|
|
],
|
|
"aliases": [
|
|
"alignment"
|
|
],
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop align=center"
|
|
],
|
|
"readback": "first-paragraph Justification.Val.InnerText",
|
|
"enforcement": "strict"
|
|
},
|
|
"direction": {
|
|
"type": "enum",
|
|
"values": [
|
|
"rtl",
|
|
"ltr"
|
|
],
|
|
"aliases": [
|
|
"dir",
|
|
"bidi"
|
|
],
|
|
"description": "Reading direction. 'rtl' writes <w:bidi/> on the header paragraph, <w:rtl/> on the paragraph mark, and <w:rtl/> on every run (text + field runs alike) so Arabic / Hebrew character order reverses end-to-end. 'ltr' clears all three.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": false,
|
|
"examples": [
|
|
"--prop direction=rtl"
|
|
],
|
|
"enforcement": "strict"
|
|
},
|
|
"font": {
|
|
"type": "string",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop font=\"Arial\""
|
|
],
|
|
"readback": "Ascii or HighAnsi font name",
|
|
"enforcement": "strict"
|
|
},
|
|
"size": {
|
|
"type": "font-size",
|
|
"description": "font size. Accepts bare number or pt-suffixed.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop size=12"
|
|
],
|
|
"readback": "unit-qualified pt (e.g. \"12pt\")",
|
|
"enforcement": "strict"
|
|
},
|
|
"bold": {
|
|
"type": "bool",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop bold=true"
|
|
],
|
|
"readback": "true when bold, key absent otherwise",
|
|
"enforcement": "strict"
|
|
},
|
|
"italic": {
|
|
"type": "bool",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop italic=true"
|
|
],
|
|
"readback": "true when italic, key absent otherwise",
|
|
"enforcement": "strict"
|
|
},
|
|
"color": {
|
|
"type": "color",
|
|
"description": "font color. Accepts #RRGGBB, RRGGBB, named colors (red, blue…), rgb(r,g,b), or 3-char shorthand (F00).",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop color=#FF0000"
|
|
],
|
|
"readback": "#-prefixed uppercase hex",
|
|
"enforcement": "strict"
|
|
},
|
|
"field": {
|
|
"type": "enum",
|
|
"description": "complex field to insert (page/numpages/date/author/title/time/filename, or an arbitrary field name).",
|
|
"values": [
|
|
"page",
|
|
"pagenum",
|
|
"pagenumber",
|
|
"numpages",
|
|
"date",
|
|
"author",
|
|
"title",
|
|
"time",
|
|
"filename"
|
|
],
|
|
"add": true,
|
|
"set": false,
|
|
"get": false,
|
|
"examples": [
|
|
"--prop field=page"
|
|
],
|
|
"readback": "not surfaced as a distinct key",
|
|
"enforcement": "strict"
|
|
}
|
|
}
|
|
}
|