I am mentoring a student who is working on a library to import Adobe Pagemaker documents into LibreOffice.
Pagemaker represents ellipses as a bounding box (of the original, untransformed ellipse) and a skew. By skew i mean multiplication by a matrix like the following. $$\left( \begin{array}{cc}
1 & c \\
0 & 1 \\ \end{array} \right)$$
(Pagemaker also includes an additional rotation, but let's ignore that for now. Also, the real way it represents a skew isn't by this parameter c, but by the angle the skewed y-axis makes with the actual y-axis.)
Libreoffice represents ellipses as the length of the x-axis, the length of the y-axis, and a rotation. Thus, we need to determine the lengths of the axes in order to represent the matrix in its new form. The angle of rotation we get for free, and the length of the skewed y-axis isn't too hard to calculate. But how to calculate the length of the skewed x-axis?
An ellipse centered at the origin (but possibly rotated) is the image of the unit circle by a linear transformation. The axes of the ellipse are given by the singular vectors of this transformation. So, just compute a $2\times 2$ SVD for your matrix and then find the angle you need from the singular vectors.