Mathematica's symbolic document paradigm makes it uniquely easy to create complex structured documents programmatically, including both graphical elements and dynamic interactivity.
CreateDocument — create a complete formatted document from a list of expressions
DocumentNotebook — symbolic representation of a document notebook
TextCell,
ExpressionCell — symbolic representations of cells in any style
CellGroup — symbolic representation of a cell group, with any cells closed
Grid — arbitrary 2D layout of expressions, graphics, etc., with spanning, frames, etc.
TabView — arbitrary tabbed pages
StyleDefinitions — overall cascading stylesheet definitions for a document
Style — specify a style name or styling options for any element of a document
Text — text to be embedded anywhere in a document
Active Elements & Annotation
Hyperlink — create a hyperlink to any URL or any part of the document
Defer — create a cell containing evaluatable input
Import — import graphics, etc. to include
Export — export to the web and other media, in HTML, PDF, XML, etc.
Deploy — make a document or any part of it uneditable
Incremental Document Generation
CellPrint — insert a cell at the point where evaluation is being done