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 void HPDF_Xref_Add(HPDF_Object obj) { LibLogger.Debug(this.GetType(), "HPDF_Xref_Add"); if (obj == null) { Error = new HPDF_Error("HPDF_Xref_Add", HPDF_Error.HPDF_INVALID_OBJECT, 0); } var header = obj.Header; if ((header.ObjId & HPDF_Obj_Header.HPDF_OTYPE_DIRECT) != 0 || (header.ObjId & HPDF_Obj_Header.HPDF_OTYPE_INDIRECT) != 0) { Error = new HPDF_Error("HPDF_Xref_Add", HPDF_Error.HPDF_INVALID_OBJECT, 0); } if (Entries.Count >= HPDF_Consts.HPDF_LIMIT_MAX_XREF_ELEMENT) { Error = new HPDF_Error("HPDF_Xref_Add", HPDF_Error.HPDF_XREF_COUNT_ERR, 0); } var entry = new HPDF_Xref_Entry { EntryTyp = HPDF_IN_USE_ENTRY, ByteOffset = 0, GenNo = 0, Obj = obj }; Entries.Add(entry); header.ObjId = (uint)(StartOffset + Entries.Count - 1 + (int)HPDF_Obj_Header.HPDF_OTYPE_INDIRECT); header.GenNo = entry.GenNo; }
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; } }
public void HPDF_Obj_WriteValue(HPDF_Object obj, HPDF_Encrypt e) { LibLogger.Debug(this.GetType(), "HPDF_Obj_WriteValue"); HPDF_Obj_Header header = obj.Header; var clas = header.ObjClass & HPDF_Obj_Header.HPDF_OCLASS_ANY; switch (clas) { case HPDF_Obj_Header.HPDF_OCLASS_NAME: HPDF_Name_Write(obj as HPDF_Name); break; case HPDF_Obj_Header.HPDF_OCLASS_NUMBER: HPDF_Number_Write(obj as HPDF_Number); break; case HPDF_Obj_Header.HPDF_OCLASS_REAL: HPDF_Real_Write(obj as HPDF_Real); break; case HPDF_Obj_Header.HPDF_OCLASS_STRING: HPDF_String_Write(obj as HPDF_String, e); break; case HPDF_Obj_Header.HPDF_OCLASS_BINARY: HPDF_Binary_Write(obj as HPDF_Binary, e); break; case HPDF_Obj_Header.HPDF_OCLASS_ARRAY: HPDF_Array_Write(obj as HPDF_Array, e); break; case HPDF_Obj_Header.HPDF_OCLASS_DICT: HPDF_Dict_Write(obj as HPDF_Dict, e); break; case HPDF_Obj_Header.HPDF_OCLASS_BOOLEAN: HPDF_Boolean_Write(obj as HPDF_Boolean); break; case HPDF_Obj_Header.HPDF_OCLASS_NULL: HPDF_Stream_WriteStr("null"); break; default: Error = new HPDF_Error("HPDF_Obj_WriteValue", HPDF_Error.HPDF_ERR_UNKNOWN_CLASS, 0); break; } }
public HPDF_Proxy(HPDF_Object obj) { Header.ObjClass = HPDF_Obj_Header.HPDF_OCLASS_PROXY; Obj = obj; }
private void HPDF_Obj_Write(HPDF_Object obj, HPDF_Encrypt e) { LibLogger.Debug(this.GetType(), "HPDF_Obj_Write"); }