// See http://stackoverflow.com/questions/4491156/get-the-export-value-of-a-checkbox-using-itextsharp/ public static string GetExportValue(AcroFields.Item item) { var valueDict = item.GetValue(0); var appearanceDict = valueDict.GetAsDict(PdfName.AP); if (appearanceDict != null) { var normalAppearances = appearanceDict.GetAsDict(PdfName.N); // /D is for the "down" appearances. // if there are normal appearances, one key will be "Off", and the other // will be the export value... there should only be two. if (normalAppearances != null) { foreach (var curKey in normalAppearances.Keys) if (!PdfName.OFF.Equals(curKey)) return curKey.ToString().Substring(1); // string will have a leading '/' character, so remove it! } } // if that doesn't work, there might be an /AS key, whose value is a name with // the export value, again with a leading '/', so remove it! var curVal = valueDict.GetAsName(PdfName.AS); if (curVal != null) return curVal.ToString().Substring(1); else return string.Empty; }