Exemplo n.º 1
0
        /// <summary>Creates a Set-OCG-State action (section 12.6.4.12 of ISO 32000-1).</summary>
        /// <param name="states">
        /// states a list of
        /// <see cref="PdfActionOcgState"/>
        /// state descriptions
        /// </param>
        /// <param name="preserveRb">
        /// If true, indicates that radio-button state relationships between optional content groups
        /// should be preserved when the states are applied
        /// </param>
        /// <returns>created action</returns>
        public static iText.Kernel.Pdf.Action.PdfAction CreateSetOcgState(IList <PdfActionOcgState> states, bool preserveRb
                                                                          )
        {
            PdfArray stateArr = new PdfArray();

            foreach (PdfActionOcgState state in states)
            {
                stateArr.AddAll(state.GetObjectList());
            }
            return(new iText.Kernel.Pdf.Action.PdfAction().Put(PdfName.S, PdfName.SetOCGState).Put(PdfName.State, stateArr
                                                                                                   ).Put(PdfName.PreserveRB, PdfBoolean.ValueOf(preserveRb)));
        }
Exemplo n.º 2
0
        protected internal virtual PdfArray GetFormFields(PdfArray array)
        {
            PdfArray fields = new PdfArray();

            foreach (PdfObject field in array)
            {
                PdfArray kids = ((PdfDictionary)field).GetAsArray(PdfName.Kids);
                fields.Add(field);
                if (kids != null)
                {
                    fields.AddAll(GetFormFields(kids));
                }
            }
            return(fields);
        }
Exemplo n.º 3
0
        private PdfArray GetFormFields(PdfArray array)
        {
            PdfArray fields = new PdfArray();

            // explicit iteration to resolve indirect references on get().
            // TODO DEVSIX-591
            for (int i = 0; i < array.Size(); i++)
            {
                PdfDictionary field = array.GetAsDictionary(i);
                PdfArray      kids  = field.GetAsArray(PdfName.Kids);
                fields.Add(field);
                if (kids != null)
                {
                    fields.AddAll(GetFormFields(kids));
                }
            }
            return(fields);
        }