Exemplo n.º 1
0
 public InlineImage(
     InlineImageHeader header,
     InlineImageBody body
     )
 {
     objects.Add(header);
       objects.Add(body);
 }
Exemplo n.º 2
0
 public InlineImage(
     InlineImageHeader header,
     InlineImageBody body
     )
 {
     objects.Add(header);
     objects.Add(body);
 }
Exemplo n.º 3
0
        private InlineImage ParseInlineImage(
      )
        {
            /*
            NOTE: Inline images use a peculiar syntax that's an exception to the usual rule
            that the data in a content stream is interpreted according to the standard PDF syntax
            for objects.
              */
              InlineImageHeader header;
              {
            List<PdfDirectObject> operands = new List<PdfDirectObject>();
            // Parsing the image entries...
            while(MoveNext()
              && TokenType != TokenTypeEnum.Keyword) // Not keyword (i.e. end at image data beginning (ID operator)).
            {operands.Add((PdfDirectObject)ParsePdfObject());}
            header = new InlineImageHeader(operands);
              }

              InlineImageBody body;
              {
            bytes::IInputStream stream = Stream;
            MoveNext();
            bytes::Buffer data = new bytes::Buffer();
            while(true)
            {
              byte c1 = (byte)stream.ReadByte();
              byte c2 = (byte)stream.ReadByte();
              if(c1 == 'E' && c2 == 'I')
            break;

              data.Append(c1);
              data.Append(c2);
            }
            body = new InlineImageBody(data);
              }

              return new InlineImage(
            header,
            body
            );
        }