1. A computer-implemented method of constructing an object model reflective of structure of a document, comprising: scanning a markup language representation of the document to construct a plurality of text runs; determining which text runs correspond to a same semantic block to thereby create at least one semantic block container; determining the order of the text lines within each of the at least one semantic blocks; determining the order of the at least one semantic blocks on a current page; and saving the semantic blocks including the order of the text lines and the order of the semantic blocks on the page as the object model.