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

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

Related APIs