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); }
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); }
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); }
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); }
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); }
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); }