diff --git a/src/UglyToad.PdfPig/AcroForms/AcroFormFactory.cs b/src/UglyToad.PdfPig/AcroForms/AcroFormFactory.cs index f8e68068..a0445e66 100644 --- a/src/UglyToad.PdfPig/AcroForms/AcroFormFactory.cs +++ b/src/UglyToad.PdfPig/AcroForms/AcroFormFactory.cs @@ -478,6 +478,17 @@ var isChecked = false; if (!fieldDictionary.TryGetOptionalTokenDirect(NameToken.V, tokenScanner, out NameToken valueToken)) { + if (fieldDictionary.TryGetOptionalTokenDirect(NameToken.As, tokenScanner, out NameToken appearanceStateName) + && fieldDictionary.TryGetOptionalTokenDirect(NameToken.Ap, tokenScanner, out DictionaryToken _)) + { + // Issue #267 - Use the set appearance instead, this might not work for 3 state checkboxes. + isChecked = !string.Equals( + appearanceStateName.Data, + NameToken.Off, + StringComparison.OrdinalIgnoreCase); + valueToken = appearanceStateName; + return (isChecked, valueToken); + } valueToken = NameToken.Off; } else if (inheritsValue && fieldDictionary.TryGet(NameToken.As, tokenScanner, out NameToken appearanceStateName))