if (inText)
endText();
AffineTransform transform = new AffineTransform(a, b, c, d, e, f);
Point2D[] src = new Point2D.Float[] {new Point2D.Float(0, 0), new Point2D.Float(1, 0), new Point2D.Float(1, 1), new Point2D.Float(0, 1)};
Point2D[] dst = new Point2D.Float[4];
transform.transform(src, 0, dst, 0, 4);
float left = Float.MAX_VALUE;
float right = -Float.MAX_VALUE;
float bottom = Float.MAX_VALUE;
float top = -Float.MAX_VALUE;
for (int i = 0; i < 4; i++) {