This document describes accuracy-related changes we made in Docotic.Pdf 3.1 API
While developing Docotic.Pdf 3.1 we discovered that single precision floating numbers are not always can represent data found in existing PDFs. And we also found out that our library may produce different results when run in different environments (i.e. the same code may produce different results when run in 32-bit and 64-bit applications).
We decided that it's time to introduce changes to API of the library. And we did just that. Now library doesn't lose any floating-point data found in existing PDFs and produce the same results in any environment.
Most of the changes are transparent for users of the library. For example, many of library methods are now accept double values instead of float ones. And we also introduced PdfPoint, PdfRectangle and PdfSize structures along with overloads for existing methods to help users of the Docotic.Pdf to achieve more precise layout in their documents.
Unfortunately, we were forced to introduce small amount of changes that may require users of the library to adapt their code for new version of Docotic.Pdf. Below is the list of these changes. Please note that PdfPoint, PdfRectangle and PdfSize structures have ToPointF(), ToSizeF() and ToRectangleF() methods and corresponding constructors that can be used to convert values between PdfPoint and PointF, PdfSize and SizeF or PdfRectangle and RectangleF structures.