protected PdfPage(PdfIndirectReference pages, PdfPageTree parent, PdfObjectType type) : base(type) { GenerationNumber = pages.GenerationNumber; ObjectNumber = pages.ObjectNumber; Parent = parent; }
/// <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(); }
/// <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(); }
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; }
public void SetObjectNumber(int Value) { FObjectNumber = Value; if (Value > 0) { FObjectType = PdfObjectType.IndirectObject; } else { FObjectType = PdfObjectType.DirectObject; } }
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; } }
protected PdfDictionary(PdfDictionary dictionary, PdfObjectType type) : base(type) { IsContainer = true; _dictionary = dictionary._dictionary; }
protected PdfObject(PdfObjectType type) { ObjectType = type; }