private float width() {
            float width = 0.0f;
            for (int i = 0; i < indices.size(); i++) {
                if (indices.get(i).advance == 0.0) {
                    if (i == 0) {
                        // If this is the first glyph use hard coded estimate
                        width += ESTIMATE_GLYPH_WIDTH;
                    } else {
                        // If advance is 0.0 it is probably the last glyph in the run, we don't know how wide it is so we use the average of the previous widths as an estimate
                        width += width / i;
                    }
                } else {
                    width += indices.get(i).advance;
                }
            }
            return width * fontSize;
        }
Handles an individual page.  For now, this marks up
canvas entities in a &lt;div&gt; tag.  Based on the spec,
it currently relies on order within the xml for order of output
of text to xhtml.  We could do more complex processing of coordinates
for bidi-languages, but the spec implies that we should be able
to rely on storage order.
<p/>
As with our PDFParser, this currently dumps urls at the bottom of the page
and does not attempt to calculate the correct anchor text.
<p/>
TODO: integrate table markup
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xps/XPSPageContentHandler.java