コード例 #1
0
        public static void GetFormFieldValue(PdfFormField field)
        {
            Console.WriteLine("Field: " + field.GetFullName());
            var field_obj = field.GetObject();
            var value_obj = field_obj.Get("V");

            if (value_obj == null)
            {
                Console.WriteLine("Value is empty");
                return;
            }

            switch (value_obj.GetObjectType())
            {
            case PdfObjectType.kPdsString:
            {
                // single value od the form field
                PdsString value_str = (PdsString)value_obj;
                Console.WriteLine("Value: " + value_str.GetText());
            }
            break;

            case PdfObjectType.kPdsArray:
            {
                // multiple values (e.g listbox with mutiple selection set)
                PdsArray value_arr = (PdsArray)value_obj;
                for (var i = 0; i < value_arr.GetNumObjects(); i++)
                {
                    Console.WriteLine("Value" + (i + 1).ToString() + ": " + value_arr.GetText(i));
                }
            }
            break;
            }
        }
コード例 #2
0
        ///////////////////////////////////////////////////////////////////////
        // 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;
            }
        }