Exemplo n.º 1
0
        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);
        }