public string HPDF_Dict_GetKeyByObj(HPDF_Object obj) { for (int i = 0; i < List.Count; i++) { var element = List[i]; var header = element.Value.Header; if (header.ObjClass == HPDF_Obj_Header.HPDF_OCLASS_PROXY) { HPDF_Proxy p = new HPDF_Proxy(element.Value); if (p.Obj == obj) { return(element.Key); } } else { if (element.Value == obj) { return(element.Key); } } } return(null); }
public HPDF_Object HPDF_Dict_GetItem(string key, uint objClass) { LibLogger.Debug(this.GetType(), $"HPDF_Dict_GetItem key {key} objClass {objClass}"); var element = GetElement(key); HPDF_Object obj = new HPDF_Object(); if (element != null && key == element.Key) { var header = element.Value.Header; if (header.ObjClass == HPDF_Obj_Header.HPDF_OCLASS_PROXY) { HPDF_Proxy p = new HPDF_Proxy(element.Value); header = p.Header; obj = p.Obj; } else { obj = element.Value; } if ((Header.ObjClass & HPDF_Obj_Header.HPDF_OCLASS_ANY) != objClass) { Error = new HPDF_Error("HPDF_Dict_GetItem", HPDF_Error.HPDF_DICT_ITEM_UNEXPECTED_TYPE, 0); } } return(obj); }
public void HPDF_Dict_Add(string key, HPDF_Object obj) { LibLogger.Debug(this.GetType(), $"HPDF_Dict_Add key {key} obj.Header.ObjId {obj.Header.ObjId}"); HPDF_Obj_Header header = obj.Header; HPDF_DictElement element; if ((header.ObjId & HPDF_Obj_Header.HPDF_OTYPE_DIRECT) != 0) { Error = new HPDF_Error("HPDF_Dict_Add line - invalid object", HPDF_Error.HPDF_INVALID_OBJECT, 0); } if (key == null) { Error = new HPDF_Error("HPDF_Dict_Add line - invalid object", HPDF_Error.HPDF_INVALID_OBJECT, 0); } if (List.Count >= HPDF_Consts.HPDF_LIMIT_MAX_DICT_ELEMENT) { LibLogger.Debug(this.GetType(), " HPDF_Dict_Add exceed limitatin of dict count(" + HPDF_Consts.HPDF_LIMIT_MAX_DICT_ELEMENT.ToString() + ")"); Error = new HPDF_Error("HPDF_Dict_Add line - invalid object", HPDF_Error.HPDF_DICT_COUNT_ERR, 0); } /* check whether there is an object which has same name */ element = GetElement(key); if (element != null) { element.Value = null; } else { element = new HPDF_DictElement { Key = key, Value = null }; List.Add(element); } if ((header.ObjId & HPDF_Obj_Header.HPDF_OTYPE_INDIRECT) != 0) { var proxy = new HPDF_Proxy(obj); element.Value = proxy; proxy.Header.ObjId |= HPDF_Obj_Header.HPDF_OTYPE_DIRECT; } else { element.Value = obj; header.ObjId |= HPDF_Obj_Header.HPDF_OTYPE_DIRECT; } }