8cb1f9f479
Publish SDK (PyPI) / publish (push) Waiting to run
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Waiting to run
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Waiting to run
Publish SDK (npm) / publish (@officecli/sdk) (push) Waiting to run
Publish SDK (npm) / publish (officecli-sdk) (push) Waiting to run
SDK smoke / smoke (windows-latest) (push) Waiting to run
SDK smoke / smoke (macos-latest) (push) Waiting to run
SDK smoke / smoke (ubuntu-latest) (push) Waiting to run
Skill parity / diff (push) Waiting to run
76 lines
4.3 KiB
Bash
76 lines
4.3 KiB
Bash
#!/bin/bash
|
|
# document-formatting.sh — exercise the full docx `document` property surface
|
|
# (schemas/help/docx/document.json) using the officecli CLI directly.
|
|
#
|
|
# `document` is a read-only container at path "/"; you only set/get it. Seven
|
|
# groups: metadata, page setup, docDefaults, theme, CJK grid, font embedding,
|
|
# display/privacy. CLI twin of document-formatting.py (officecli SDK); both
|
|
# produce an equivalent document-formatting.docx.
|
|
# NOTE: intentionally NO `set -e`. Like the SDK twin's doc.batch, this script
|
|
# tolerates forward-compat 'UNSUPPORTED props' warnings (officecli exit 2) and
|
|
# keeps building so the full document is produced.
|
|
FILE="$(dirname "$0")/document-formatting.docx"
|
|
echo "Building $FILE ..."
|
|
rm -f "$FILE"
|
|
officecli create "$FILE"
|
|
officecli open "$FILE"
|
|
|
|
# --- Body: unstyled paragraphs inherit the docDefaults set below ---
|
|
officecli add "$FILE" /body --type paragraph --prop text="Document Formatting Showcase" --prop style=Title
|
|
officecli add "$FILE" /body --type paragraph --prop text="This heading uses the theme major font." --prop style=Heading1
|
|
officecli add "$FILE" /body --type paragraph --prop text="This body paragraph carries NO run formatting, so it renders in the document defaults: Georgia 12pt, dark slate — set via docDefaults.* on the document, not on the run."
|
|
officecli add "$FILE" /body --type paragraph --prop text="A second default paragraph, to show the inherited line spacing and space-after also come from docDefaults."
|
|
|
|
# --- 1. Metadata (core + extended) ---
|
|
officecli set "$FILE" / --prop author="Jane Author" --prop title="Q3 Field Report" \
|
|
--prop subject=Finance --prop keywords="report,q3,finance" \
|
|
--prop description="Quarterly field summary." --prop lastModifiedBy=Editorial
|
|
officecli set "$FILE" / --prop extended.company="Acme Corp" \
|
|
--prop extended.manager="Dana Lead" --prop extended.template="Normal.dotm"
|
|
|
|
# --- 2. Page setup (A4 portrait, mirrored margins) ---
|
|
officecli set "$FILE" / --prop pageWidth=21cm --prop pageHeight=29.7cm --prop orientation=portrait \
|
|
--prop marginTop=2.54cm --prop marginBottom=2.54cm \
|
|
--prop marginLeft=3.18cm --prop marginRight=3.18cm \
|
|
--prop marginHeader=1.5cm --prop marginFooter=1.75cm --prop marginGutter=0cm
|
|
officecli set "$FILE" / --prop mirrorMargins=true --prop gutterAtTop=false --prop bookFoldPrinting=false
|
|
|
|
# --- 3. docDefaults (defaults unstyled text inherits) ---
|
|
officecli set "$FILE" / \
|
|
--prop docDefaults.font=Georgia --prop docDefaults.font.eastAsia=SimSun \
|
|
--prop docDefaults.font.hAnsi=Georgia --prop docDefaults.font.complexScript=Arial \
|
|
--prop docDefaults.fontSize=12 --prop docDefaults.color=2F3640 \
|
|
--prop docDefaults.bold=false --prop docDefaults.italic=false --prop docDefaults.rtl=false \
|
|
--prop docDefaults.alignment=left \
|
|
--prop docDefaults.spaceBefore=0pt --prop docDefaults.spaceAfter=8pt --prop docDefaults.lineSpacing=1.15x
|
|
|
|
# --- 4. Theme — palette (dk/lt + accent1..6) and major/minor fonts ---
|
|
officecli set "$FILE" / \
|
|
--prop theme.color.dk1=1A1A1A --prop theme.color.lt1=FFFFFF \
|
|
--prop theme.color.dk2=2F3640 --prop theme.color.lt2=EEF1F5 \
|
|
--prop theme.color.accent1=1F6FEB --prop theme.color.accent2=E3572A \
|
|
--prop theme.color.accent3=2DA44E --prop theme.color.accent4=BF8700 \
|
|
--prop theme.color.accent5=8250DF --prop theme.color.accent6=1B7C83 \
|
|
--prop theme.color.hlink=0969DA --prop theme.color.folHlink=8250DF
|
|
officecli set "$FILE" / \
|
|
--prop theme.font.major.latin=Georgia --prop theme.font.minor.latin=Calibri \
|
|
--prop theme.font.major.eastAsia=SimHei --prop theme.font.minor.eastAsia=SimSun
|
|
|
|
# --- 5. CJK grid & spacing ---
|
|
officecli set "$FILE" / --prop docGrid.type=linesAndChars --prop docGrid.linePitch=312 \
|
|
--prop docGrid.charSpace=0 --prop charSpacingControl=compressPunctuation \
|
|
--prop autoSpaceDE=true --prop autoSpaceDN=true --prop kinsoku=true --prop overflowPunct=true
|
|
|
|
# --- 6. Font embedding ---
|
|
officecli set "$FILE" / --prop embedFonts=true --prop embedSystemFonts=false --prop saveSubsetFonts=true
|
|
|
|
# --- 7. Display / print / privacy ---
|
|
officecli set "$FILE" / --prop evenAndOddHeaders=true --prop autoHyphenation=false \
|
|
--prop defaultTabStop=720 --prop displayBackgroundShape=true \
|
|
--prop removePersonalInformation=false --prop removeDateAndTime=false --prop printFormsData=false
|
|
officecli set "$FILE" / --prop compatibility.mode=15
|
|
|
|
officecli close "$FILE"
|
|
officecli validate "$FILE"
|
|
echo "Created: $FILE"
|