iTextSharp.text.pdf.AcroFields.SplitDAelements C# (CSharp) Метод

SplitDAelements() публичный статический Метод

public static SplitDAelements ( String da ) : Object[]
da String
Результат Object[]
        public static Object[] SplitDAelements(String da) {
            PRTokeniser tk = new PRTokeniser(PdfEncodings.ConvertToBytes(da, null));
            ArrayList stack = new ArrayList();
            Object[] ret = new Object[3];
            while (tk.NextToken()) {
                if (tk.TokenType == PRTokeniser.TK_COMMENT)
                    continue;
                if (tk.TokenType == PRTokeniser.TK_OTHER) {
                    String oper = tk.StringValue;
                    if (oper.Equals("Tf")) {
                        if (stack.Count >= 2) {
                            ret[DA_FONT] = stack[stack.Count - 2];
                            ret[DA_SIZE] = float.Parse((String)stack[stack.Count - 1], System.Globalization.NumberFormatInfo.InvariantInfo);
                        }
                    }
                    else if (oper.Equals("g")) {
                        if (stack.Count >= 1) {
                            float gray = float.Parse((String)stack[stack.Count - 1], System.Globalization.NumberFormatInfo.InvariantInfo);
                            if (gray != 0)
                                ret[DA_COLOR] = new GrayColor(gray);
                        }
                    }
                    else if (oper.Equals("rg")) {
                        if (stack.Count >= 3) {
                            float red = float.Parse((String)stack[stack.Count - 3], System.Globalization.NumberFormatInfo.InvariantInfo);
                            float green = float.Parse((String)stack[stack.Count - 2], System.Globalization.NumberFormatInfo.InvariantInfo);
                            float blue = float.Parse((String)stack[stack.Count - 1], System.Globalization.NumberFormatInfo.InvariantInfo);
                            ret[DA_COLOR] = new Color(red, green, blue);
                        }
                    }
                    else if (oper.Equals("k")) {
                        if (stack.Count >= 4) {
                            float cyan = float.Parse((String)stack[stack.Count - 4], System.Globalization.NumberFormatInfo.InvariantInfo);
                            float magenta = float.Parse((String)stack[stack.Count - 3], System.Globalization.NumberFormatInfo.InvariantInfo);
                            float yellow = float.Parse((String)stack[stack.Count - 2], System.Globalization.NumberFormatInfo.InvariantInfo);
                            float black = float.Parse((String)stack[stack.Count - 1], System.Globalization.NumberFormatInfo.InvariantInfo);
                            ret[DA_COLOR] = new CMYKColor(cyan, magenta, yellow, black);
                        }
                    }
                    stack.Clear();
                }
                else
                    stack.Add(tk.StringValue);
            }
            return ret;
        }