public Tokeniser GetStreamBytes() { if (!IsStream) { throw new Exception($"'{this}' is not a stream."); } Tokeniser.FilterEnum filter; if (tokens.TryGetValue("Filter", out var filterToken)) { if ((filterToken is ArrayToken filterArrayToken)) { if (filterArrayToken.Count != 1) { System.Diagnostics.Debugger.Break(); } filterToken = filterArrayToken[0]; } var filterString = ((NameToken)filterToken).Value; if (filterString == "") { filter = Tokeniser.FilterEnum.None; } else if (filterString == "FlateDecode") { filter = Tokeniser.FilterEnum.FlateDecode; } else { throw new NotSupportedException(); } } else { filter = Tokeniser.FilterEnum.None; } tokeniser.FillStreamBytes(StreamStartIndex, Length, filter); return(tokeniser); }