k2f_docx 0.2.2

K2F lock → DOCX exporter
Documentation

k2f_docx

K2F lock → DOCX exporter. Official entry is k2f export-docx. The crate binary k2f-docx remains for crate development.

DOCX is a one-way dump of an already-locked package. It is not a K2F source (DOCX_IS_NOT_A_SOURCE). Paper size and page breaks come from the published lock. This is not a flowing “Save as Word” layout engine and not “generate a .docx from an outline”: objects are placed with lock coordinates (absolute DrawingML), not Word’s automatic reflow.

If Word’s “Show editing marks” is on, the file looks like many floating text boxes. That is expected.

Capability table

Input Word object Editable
Ordinary text wps:txbx text box yes; slight reflow is allowed
Running header/footer header/footer part + PAGE / NUMPAGES fields yes (edit the part, every page changes)
Plain-text table w:tbl inside a positioned text box yes
Bitmap / SVG illustration pic:pic replaceable
Opaque solid box wps:wsp fill can be changed
Linear gradient / translucent solid wps:wsp a:gradFill / a:alpha fill can be changed
blur / shadow / math k2f-raster: wps:wsp + a:blipFill no

Do not stamp a full-page PNG and overlay invisible text. That is the PDF-bridge stamp path and would destroy native text, tables, and pictures.

Limits (v1)

  • Slight text reflow vs K2F is expected. Glyphs are not absolutely positioned.
  • Glass / blur slices sample only the chrome lock (page background plus the effect ops). They do not blur native card shapes sitting behind the glass.
  • Nested / image / still-Asset table cells are not native w:tbl (they stay box+text+pic).
  • Do not restyle with Word’s Heading 1 style gallery: that would reflow the absolutely positioned contract.
  • SVG embeds as image/svg+xml. Word’s SVG support is weaker than PowerPoint; CI only asserts media + a:blip.
  • No DOCX → K2F import. No OMML.

Official CLI

From the k2f/ workspace root (or any k2f on PATH):

k2f export-docx examples/published/invoice.K2F -o /tmp/invoice.docx

No --scale / --trust-pack. Failures print to stderr and exit 1. Slight text reflow vs K2F is legal.

Crate binary (development)

cargo run -p k2f_docx -- export examples/published/invoice.K2F -o /tmp/invoice.docx
k2f-docx export <in.K2F> -o <out.docx>

--help states this is experimental, does not modify the source package, and is not a second layout engine. Failures print to stderr and exit 1.

Test

From the k2f/ workspace root:

cargo test -p k2f_docx
cargo test -p k2f --test export_docx

Do not use bare cargo test for this crate; it is not in default-members.

Relationship with k2f_pptx

Independent crate. Do not use k2f_pptx. Do not extract a shared k2f_office crate. Deleting Word export must not touch export/k2f_pptx.

Delete this module

  1. Remove the directory k2f/export/k2f_docx/
  2. Remove "export/k2f_docx" from the members list in k2f/Cargo.toml (do not touch default-members)
  3. Revert k2f export-docx wiring in cli/k2f_cli, this README, CHANGELOG.md, and skills/k2f (export-docx / exporting-docx.md)