Interactive Document Processing
HotPDF provides bounded, non-executing workflows for loaded field scripts, RichMedia payloads, XFA data binding, FormCalc, and XFDF annotation exchange
Safe calculation and validation
EvaluateLoadedFieldJavaScript reads a field action for the requested trigger and evaluates only the documented safe subset
AFSimple_Calculateaggregates named fieldsAFRange_Validateapplies inclusive or exclusive boundsevent.value,this.getField(...).value, arithmetic, and selectedMathfunctions form bounded numeric expressions- Active scripting constructs are rejected before parsing
RichMedia inspection and sanitisation
GetLoadedRichMediaAssetCount, GetLoadedRichMediaAssetInfo, and ExtractLoadedRichMediaAsset traverse a bounded RichMedia asset name tree and expose decoded embedded bytes
SanitiseLoadedRichMediaAnnotations removes RichMedia annotations and collects their now-unreachable FileSpec and EmbeddedFile objects for a safe full rewrite without removing unrelated active content
XFA SOM and FormCalc
XFA flattening accepts indexed instances, wildcard instances, class selectors, descendant selectors, and $record, $data, or !data roots while preserving document order
The bounded FormCalc subset includes Abs, Avg, Ceil, Count, Floor, Max, Min, Mod, Pi, Pow, Round, Sqrt, and Sum
XFDF annotation round trips
XFDF import and export use one shared mapping for Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact, and Link annotations
Popup dictionaries remain children of their owning markup annotation, while Widget and RichMedia data use their dedicated form and media workflows