コード例 #1
0
        public List<PrintPart> LargeParsing(string template, bool right)
        {
            if (string.IsNullOrEmpty(template))
                return new List<PrintPart>() { new PrintPart() { Text = "" } };

            var larges = Regex.Split(template, templateLarge);
            if (larges == null || larges.Length == 0)
                return null;

            var parts = new List<PrintPart>();
            foreach (var large in larges)
            {
                // 
                // var isLarge = Regex.IsMatch(template, "\\[\\*\\]" + large + "\\[/\\*\\]");
                var isLarge = template.Contains("[*]" + large + "[/*]");
                var part = new PrintPart() { Text = large, IsLarge = isLarge, IsCenter = false, IsRight = right };
                parts.Add(part);
            }


            return parts;
        }
コード例 #2
0
        public List<PrintPart> TemplateParsing(string template)
        {
            var parts = new List<PrintPart>();

            if (Regex.IsMatch(template, templateCenter))
            {
                var text = Regex.Match(template, templateCenter).Groups[1].Value;
                var isLarge = Regex.IsMatch(template, templateLarge);
                if (isLarge)
                {
                    text = Regex.Match(text, templateLarge).Groups[1].Value;
                }
                var part = new PrintPart() { Text = text, IsCenter = true, IsLarge = isLarge };
                parts.Add(part);
            }
            else
            {
                var rights = Regex.Split(template, templateRight);
                if (rights.Length > 0)
                {
                    foreach (var right in rights)
                    {
                        var template2 = template.Replace("[*]", string.Empty).Replace("[/*]", string.Empty);
                        var right2 = right.Replace("[*]", string.Empty).Replace("[/*]", string.Empty);
                        // var hasRight = Regex.IsMatch(template2, "\\[r\\]" + right2 + "\\[/r\\]");
                        var hasRight = template2.Contains("[r]" + right2 + "[/r]");
                        var tparts = LargeParsing(right, hasRight);
                        if (tparts != null && tparts.Count > 0)
                            parts.AddRange(tparts);
                    }
                }
            }

            return parts;
        }