コード例 #1
0
        public static BFRange Parse(string s, ref int startPosition)
        {
            string sBeginChar;
            string sUnicodeChar;

            Statement.SkipSpace(s, ref startPosition);
            sBeginChar = PdfHexStringDataType.GetRawData(s, ref startPosition);
            Statement.SkipSpace(s, ref startPosition);
            sUnicodeChar = PdfHexStringDataType.GetRawData(s, ref startPosition);

            int beginChar   = int.Parse(sBeginChar.Substring(1, sBeginChar.Length - 2), NumberStyles.HexNumber);
            int unicodeChar = int.Parse(sUnicodeChar.Substring(1, sUnicodeChar.Length - 2), NumberStyles.HexNumber);

            return(new BFRange()
            {
                BeginChar = beginChar,
                EndChar = beginChar,
                UnicodeChar = unicodeChar
            });
        }
コード例 #2
0
        public static string GetNextStatement(string content, ref int i)
        {
            string statement        = "";
            bool   readingStatement = false;

            if (i >= content.Length)
            {
                return(null);
            }

            while (i < content.Length)
            {
                if (content[i] == ' ')
                {
                    if (readingStatement)
                    {
                        i++;
                        return(statement);
                    }

                    statement += " ";
                    i++;
                }
                else if (content[i] == '\n')
                {
                    i++;
                    return(statement);
                }
                else if (readingStatement && IsSeparator(content[i]))
                {
                    return(statement);
                }
                else if (PdfNumericDataType.IsStartChar(content, i))
                {
                    // string parameter
                    statement += PdfNumericDataType.GetRawData(content, ref i);
                }
                else if (PdfStringDataType.IsStartChar(content, i))
                {
                    // string parameter
                    statement += PdfStringDataType.GetRawData(content, ref i);
                }
                else if (PdfArrayDataType.IsStartChar(content, i))
                {
                    // array parameter
                    statement += PdfArrayDataType.GetRawData(content, ref i);
                }
                else if (PdfHexStringDataType.IsStartChar(content, i))
                {
                    // hex string parameter
                    statement += PdfHexStringDataType.GetRawData(content, ref i);
                }
                else if (content[i] == 't' && i + 5 < content.Length && content.Substring(i, 5) == "true ")
                {
                    // boolean true parameter
                    statement += "true ";
                    i         += 5;
                }
                else if (content[i] == 'f' && i + 6 < content.Length && content.Substring(i, 6) == "false ")
                {
                    // boolean false parameter
                    statement += "false ";
                    i         += 6;
                }
                else if (PdfObjectDataType.IsStartChar(content, i))
                {
                    // hex string parameter
                    statement += PdfObjectDataType.GetRawData(content, ref i);
                }
                else
                {
                    statement       += content[i];
                    readingStatement = true;
                    i++;
                }
            }

            return(statement);
        }