1. A computer-implemented method for providing page and table layout services to a client application program, the method comprising: receiving a request from the client application program to format a page of a document; in response to the request, performing one or more callback operations to the client application program to retrieve the request specifying one or more layout requirements and the portions of the document to be laid out, wherein performing the one or more callback operations comprises retrieving the one or more layout requirements and portions of the document to be laid out from at least one of a plurality of paragraph formatters; laying out the portions of the document retrieved from the client application through the callback operations in a manner consistent with the layout requirements; receiving a request from the client application program to perform an update of the layout of the page, the request including the identification of a location on the page that has been changed; and in response to the request, locating a line within the page that includes the location that has been changed, reformatting the located line, determining whether a next line has changed as the result of the reformatting, and in response to determining that a next line has changed, reformatting a next line until the next line does not change as a result of the reformatting, and returning only the changes resulting from the reformatting of the page to the client application.