public PdfAppearance GetAppearance(bool isRadio, bool on)
{
if (isRadio && checkType == TYPE_CIRCLE)
return GetAppearanceRadioCircle(on);
PdfAppearance app = GetBorderAppearance();
if (!on)
return app;
BaseFont ufont = RealFont;
bool borderExtra = borderStyle == PdfBorderDictionary.STYLE_BEVELED || borderStyle == PdfBorderDictionary.STYLE_INSET;
float h = box.Height - borderWidth * 2;
float bw2 = borderWidth;
if (borderExtra) {
h -= borderWidth * 2;
bw2 *= 2;
}
float offsetX = (borderExtra ? 2 * borderWidth : borderWidth);
offsetX = Math.Max(offsetX, 1);
float offX = Math.Min(bw2, offsetX);
float wt = box.Width - 2 * offX;
float ht = box.Height - 2 * offX;
float fsize = fontSize;
if (fsize == 0) {
float bw = ufont.GetWidthPoint(text, 1);
if (bw == 0)
fsize = 12;
else
fsize = wt / bw;
float nfsize = h / (ufont.GetFontDescriptor(BaseFont.ASCENT, 1));
fsize = Math.Min(fsize, nfsize);
}
app.SaveState();
app.Rectangle(offX, offX, wt, ht);
app.Clip();
app.NewPath();
if (textColor == null)
app.ResetGrayFill();
else
app.SetColorFill(textColor);
app.BeginText();
app.SetFontAndSize(ufont, fsize);
app.SetTextMatrix((box.Width - ufont.GetWidthPoint(text, fsize)) / 2,
(box.Height - ufont.GetAscentPoint(text, fsize)) / 2);
app.ShowText(text);
app.EndText();
app.RestoreState();
return app;
}