public FontFile deriveFont(AffineTransform at) {
        OFont font = new OFont(this);
        // clear font metric cache if we change the font's transform
        if (!font.getTransform().equals(this.awtFont.getTransform())) {
            this.echarAdvanceCache.clear();
        }
        font.awtFont = this.awtFont.deriveFont(at);

        font.maxCharBounds = this.maxCharBounds;
        return font;
    }