Repository navigation
v0.55.0
0.55.0 (2026-09-02)
Added
-
Core:
DocxFormFieldnow reports a content control's alias.
Aliasis the display name Word itself shows a human (w:alias). It is notKey, which is
whichever nameDocxFormKeyresolved for matching and is usually the tag - an identifier the
template's author chose for code. An application rendering a form wants the alias.Empty when the control has no alias, and also when the key is ambiguous. Word does not require
either name to be unique; where one key reaches two controls with different aliases this reports
nothing rather than picking one and being silently wrong half the time.DocxForm.Validate
already reports that case asDuplicateKey. Two controls sharing a key and an alias are not
ambiguous about the alias, and it is still reported.Whether a control is LOCKED is still not reported, and that is a deliberate limit rather than
an oversight - the underlying library exposes the alias but neither the lock nor the element to
read one from. Since 0.54.0DocxForm.Fillrefuses to write a locked control, so a lock is at
least safe to discover by attempting the fill. -
Extensions:
IDocxEditormirrors theRegexoverloads ofReplaceTextadded to the core in
0.54.0 - thebyte[]form and itsStreamform - so pattern-based find-and-replace is reachable
through dependency injection rather than only through the static class.Three things a caller gets wrong without being told, now stated on the interface: the replacement
is a template in which$1expands to a captured group and a literal$is$$, zero-width
matches are skipped, and aRegexbuilt without a match timeout is refused rather
than accepted.