コード例 #1
0
        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;
            }
        }
コード例 #2
0
        public HPDF_Dict()
        {
            LibLogger.Debug(this.GetType(), "ctor");

            Header = new HPDF_Obj_Header
            {
                ObjClass = HPDF_Obj_Header.HPDF_OCLASS_DICT
            };

            List   = new List <HPDF_DictElement>();
            Filter = HPDF_Stream.HPDF_STREAM_FILTER_NONE;
            Error  = new HPDF_Error();
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
 public HPDF_Object()
 {
     Header = new HPDF_Obj_Header();
 }