Esempio n. 1
0
        private void ParseConversionTables(IList <string> objContents)
        {
            var parser = new ObjectParser(TokenStreamer.CreateFromList(objContents));

            PdfAtom command;
            var     paramList = new List <IPdfTerm>();

            do
            {
                command = parser.ReadNextCommand(paramList);

                switch (command?.AsString())
                {
                case CodeSpaceSectionEnd:
                    CheckSidSize(paramList);
                    break;

                case BfCharSectionEnd:
                    FillSidToCharMap(paramList);
                    break;

                case BfRangeSectionEnd:
                    FillSidToCharMapFromRanges(paramList);
                    break;
                }

                paramList.Clear();
            }while(command != null);
        }
Esempio n. 2
0
        public void TestObjectParsing()
        {
            var sourceList = new List <string> {
                ObjectContent
            };
            var streamer = TokenStreamer.CreateFromList(sourceList);

            // Read object id
            var currentToken = Token.EOL;

            while (currentToken.Type != TokenType.Id)
            {
                currentToken = streamer.GetNextToken();
            }

            Assert.Equal("obj", currentToken.Value as string);

            // Read attribute dict
            var attribParser  = new ObjectParser(streamer);
            var parsedAttribs = attribParser.ReadSingleObject() as PdfDictionary;

            Assert.Equal(804, (int)(parsedAttribs["Length"] as PdfAtom).AsNumber());

            // Read body stream start token
            var streamStartToken = streamer.GetNextToken();

            Assert.Equal("stream", streamStartToken.Value as string);
        }
Esempio n. 3
0
        public void TestObjectWithComplexStringParsing()
        {
            var sourceList = new List <string> {
                ObjectWithComplexString
            };
            var parser = new ObjectParser(TokenStreamer.CreateFromList(sourceList));

            var parsedObj = parser.ReadSingleObject() as PdfArray;

            Assert.Equal(4, parsedObj.Count);
        }
Esempio n. 4
0
        public void TestObjectTermsParsing()
        {
            var sourceList = new List <string>(ComplexObjectContent.Split("\r\n"));
            var streamer   = TokenStreamer.CreateFromList(sourceList);
            var parser     = new ObjectParser(streamer);

            IPdfTerm term = parser.ReadSingleObject();

            Assert.IsType <PdfArray>(term);

            var firstArrayElement = (term as PdfArray)[0];

            Assert.IsType <PdfDictionary>(firstArrayElement);
        }
Esempio n. 5
0
        private void ExtractTextFromPage(PdfPage page)
        {
            var streamer = TokenStreamer.CreateFromList(page.RawContent);
            var parser   = new ObjectParser(streamer);

            PdfAtom command;
            var     paramList = new List <IPdfTerm>();

            do
            {
                command = parser.ReadNextCommand(paramList);

                if (command != null)
                {
                    InterpretPdfCommand(command.AsString(), paramList);
                }

                paramList.Clear();
            }while(command != null);
        }
Esempio n. 6
0
        public void TestAllTermsParsing()
        {
            var sourceList = new List <string> {
                ObjectContent
            };
            var streamer = TokenStreamer.CreateFromList(sourceList);
            var parser   = new ObjectParser(streamer);

            var      allTerms = new List <IPdfTerm>();
            IPdfTerm parsedTerm;

            do
            {
                parsedTerm = parser.ReadSingleObject();
                if (parsedTerm != null)
                {
                    allTerms.Add(parsedTerm);
                }
            }while(parsedTerm != null);

            Assert.Null(parsedTerm);
            Assert.Equal(5, allTerms.Count);
        }