by IDEAL Software Support » Mon Feb 11, 2013 2:16 pm
Versions of VPE prior to VPE v4.x used internally a virtual device with 600 DPI resolution to compute the layout of text and graphics. This rather low resolution was required, because back in 1995 when the first version of VPE was officially released, we had a 16-bit version of VPE, so we needed to avoid numeric overflows for 16-bit integers.
To compensate possible round-off errors for text rendering, our code needed to add a constant value of 0.02cm to the whole width computed for text. This was required, otherwise characters at the end of a line could have been truncated. The same applies to the height of a whole text block.
In 2007 - with the release of VPE v4.0 - we changed the internal virtual device's resolution to 2.540 DPI, which yields much higher precision.
But to keep the rendering - and therefore the computed layout - compatible to old versions, we still do add those constant values. Therefore the width returned by Render() is the width of the characters + 0.02cm, which explains your different results. In practice this doesn't hurt, especially because for proportional fonts you should always compute the whole width of text blocks.