CID-Font Field Appearances

THotPDF.EnsureLoadedFieldAppearanceStream resolves the font named by the field /DA through the AcroForm /DR font dictionary and re-attaches the very font object into the appearance resources, so a Type0 (CID) font declared in the document renders through its own descendant font instead of a silent Helvetica substitution

Multi-byte values

Field values stored as UTF-16BE hex strings (the form multi-byte /V encoding) decode to Unicode text and render as <FEFF...> Tj hex strings under the Type0 font, covering comb cells, multiline bodies, single-line text, and listbox option rows alike; when the /DR font is a simple font the text falls back to literal strings

Every field class

Besides text and choice fields, button widgets now receive appearance streams: checkboxes get an Off state plus an on state named after the export value (a vector check mark with no ZapfDingbats dependency), radios get a filled-circle on state, and push buttons get a caption appearance. Listbox /Opt entries render one row each with the selected row highlighted

Width estimation

Text positioning and quadding use a per-character advance estimate that measures CJK and full-width ranges at a full em and everything else at half an em, since loaded documents expose no font metrics to the appearance generator