Exemple #1
0
 protected PdfPage(PdfIndirectReference pages, PdfPageTree parent, PdfObjectType type)
     : base(type)
 {
     GenerationNumber = pages.GenerationNumber;
     ObjectNumber     = pages.ObjectNumber;
     Parent           = parent;
 }
Exemple #2
0
 /// <summary>Создаёт новый экземпляр класса <see cref="PdfObject"/>.</summary>
 /// <param name="name">Имя объекта.</param>
 /// <param name="inBytes">Массив байт объекта.</param>
 /// <param name="type">Тип объекта.</param>
 public PdfObject(string name, byte[] inBytes, PdfObjectType type)
 {
     _objectBytes = inBytes;
     Name         = name;
     Type         = type;
     Compressed   = false;
     ParseData();
 }
Exemple #3
0
 /// <summary>Создаёт новый экземпляр класса <see cref="PdfObject"/>.</summary>
 /// <param name="name">Имя объекта.</param>
 /// <param name="inBytes">Массив байт объекта.</param>
 /// <param name="type">Тип объекта.</param>
 public PdfObject(string name, byte[] inBytes, PdfObjectType type)
 {
     _ObjectBytes = inBytes;
       Name = name;
       Type = type;
       Compressed = false;
       ParseData();
 }
Exemple #4
0
 protected PdfRectangle(PdfObjectType type, PdfArray box)
     : base(type)
 {
     if (box.Items.Count != 4)
         throw new Exception("A rectangle must have 4 values!");
     llx = (box.Items[0] as PdfNumeric).Value;
     lly = (box.Items[1] as PdfNumeric).Value;
     urx = (box.Items[2] as PdfNumeric).Value;
     ury = (box.Items[3] as PdfNumeric).Value;
 }
Exemple #5
0
 public void SetObjectNumber(int Value)
 {
     FObjectNumber = Value;
     if (Value > 0)
     {
         FObjectType = PdfObjectType.IndirectObject;
     }
     else
     {
         FObjectType = PdfObjectType.DirectObject;
     }
 }
Exemple #6
0
        protected PdfRectangle(PdfObjectType type, PdfArray box)
            : base(type)
        {
            if (box.Items.Count != 4)
            {
                throw new Exception("A rectangle must have 4 values!");
            }

            Llx = (PdfNumeric)box.Items[0];
            Lly = (PdfNumeric)box.Items[1];
            Urx = (PdfNumeric)box.Items[2];
            Ury = (PdfNumeric)box.Items[3];
        }
        ///////////////////////////////////////////////////////////////////////
        // ParseElement
        ///////////////////////////////////////////////////////////////////////
        private static void ParseObject(PdsObject obj, int level)
        {
            if (level == 3)
            {
                return;             // Don't go too deep, it's just a sample.
            }
            Action <string> dump = str =>
            {
                Console.WriteLine($"{str}");
            };

            String indent = new String('-', level);

            dump(indent);

            // parse element based on type;
            PdfObjectType objType = obj.GetObjectType();

            switch (objType)
            {
            case PdfObjectType.kPdsNull:
                dump(indent + "null:" + ((PdsBoolean)obj).GetValue());
                break;

            case PdfObjectType.kPdsBoolean:
                dump(indent + "boolean:" + ((PdsBoolean)obj).GetValue());
                break;

            case PdfObjectType.kPdsNumber:
                dump(indent + "number:" + ((PdsNumber)obj).GetValue());
                break;

            case PdfObjectType.kPdsString:
                dump(indent + "string:" + ((PdsString)obj).GetText());
                break;

            case PdfObjectType.kPdsStream:
                dump(indent + "stream:" + ((PdsStream)obj).GetRawDataSize());
                ParseObject(((PdsStream)obj).GetStreamDict(), level + 1);
                break;

            case PdfObjectType.kPdsArray:
            {
                dump("array:");
                PdsArray arr = (PdsArray)obj;
                for (int i = 0; i < arr.GetNumObjects(); i++)
                {
                    dump(indent + " [" + i + "]");
                    ParseObject(arr.Get(i), level + 1);
                }
            }
            break;

            case PdfObjectType.kPdsDictionary:
            {
                dump("dictionary:");
                PdsDictionary dict = (PdsDictionary)obj;
                for (int i = 0; i < dict.GetNumKeys(); i++)
                {
                    String key = dict.GetKey(i);
                    dump(indent + " /" + key);
                    ParseObject(dict.Get(key), level + 1);
                }
            }
            break;
            }
        }
Exemple #8
0
 protected PdfDictionary(PdfDictionary dictionary, PdfObjectType type)
     : base(type)
 {
     IsContainer = true;
     _dictionary = dictionary._dictionary;
 }
Exemple #9
0
 protected PdfObject(PdfObjectType type)
 {
     ObjectType = type;
 }