iTextSharp.text.pdf.codec.TIFFDirectory.GetNumDirectories C# (CSharp) Method

GetNumDirectories() public static method

public static GetNumDirectories ( RandomAccessFileOrArray stream ) : int
stream iTextSharp.text.pdf.RandomAccessFileOrArray
return int
        public static int GetNumDirectories(RandomAccessFileOrArray stream)
        {
            long pointer = stream.FilePointer; // Save stream pointer
            
            stream.Seek(0L);
            int endian = stream.ReadUnsignedShort();
            if (!IsValidEndianTag(endian)) {
                throw new ArgumentException("Bad endianness tag (not 0x4949 or 0x4d4d).");
            }
            bool isBigEndian = (endian == 0x4d4d);
            int magic = ReadUnsignedShort(stream, isBigEndian);
            if (magic != 42) {
                throw new
                ArgumentException("Bad magic number, should be 42.");
            }
            
            stream.Seek(4L);
            long offset = ReadUnsignedInt(stream, isBigEndian);
            
            int numDirectories = 0;
            while (offset != 0L) {
                ++numDirectories;
                
                // EOFException means IFD was probably not properly terminated.
                try {
                    stream.Seek(offset);
                    int entries = ReadUnsignedShort(stream, isBigEndian);
                    stream.Skip(12*entries);
                    offset = ReadUnsignedInt(stream, isBigEndian);
                } catch (EndOfStreamException) {
                    //numDirectories--;
                    break;
                }
            }
            
            stream.Seek(pointer); // Reset stream pointer
            return numDirectories;
        }
        

Usage Example

Ejemplo n.º 1
0
 /** Gets the number of pages the TIFF document has.
  * @param s the file source
  * @return the number of pages
  */
 public static int GetNumberOfPages(RandomAccessFileOrArray s)
 {
     return(TIFFDirectory.GetNumDirectories(s));
 }