iTextSharp.text.pdf.RandomAccessFileOrArray.SkipBytes C# (CSharp) Метод

SkipBytes() публичный Метод

public SkipBytes ( long n ) : long
n long
Результат long
        public long SkipBytes(long n)
        {
            if (n <= 0) {
                return 0;
            }
            int adj = 0;
            if (isBack) {
                isBack = false;
                if (n == 1) {
                    return 1;
                }
                else {
                    --n;
                    adj = 1;
                }
            }
            long pos;
            long len;
            long newpos;

            pos = FilePointer;
            len = Length;
            newpos = pos + n;
            if (newpos > len) {
                newpos = len;
            }
            Seek(newpos);

            /* return the actual number of bytes skipped */
            return newpos - pos + adj;
        }

Usage Example

        protected void CheckGlyphComposite(int glyph)
        {
            var start = LocaTable[glyph];

            if (start == LocaTable[glyph + 1]) // no contour
            {
                return;
            }

            Rf.Seek(TableGlyphOffset + start);
            int numContours = Rf.ReadShort();

            if (numContours >= 0)
            {
                return;
            }

            Rf.SkipBytes(8);
            for (; ;)
            {
                var flags  = Rf.ReadUnsignedShort();
                var cGlyph = Rf.ReadUnsignedShort();
                if (!GlyphsUsed.ContainsKey(cGlyph))
                {
                    GlyphsUsed[cGlyph] = null;
                    GlyphsInList.Add(cGlyph);
                }
                if ((flags & MoreComponents) == 0)
                {
                    return;
                }

                int skip;
                if ((flags & Arg1And2AreWords) != 0)
                {
                    skip = 4;
                }
                else
                {
                    skip = 2;
                }

                if ((flags & WeHaveAScale) != 0)
                {
                    skip += 2;
                }
                else if ((flags & WeHaveAnXAndYScale) != 0)
                {
                    skip += 4;
                }

                if ((flags & WeHaveATwoByTwo) != 0)
                {
                    skip += 8;
                }

                Rf.SkipBytes(skip);
            }
        }
All Usage Examples Of iTextSharp.text.pdf.RandomAccessFileOrArray::SkipBytes