internal string addHistory() { PrintRecord pr = new PrintRecord(DateTime.Now, firstNum, lastNum, fields["[version]"]); history.Add(pr); return("PRINTED:" + pr.ToString()); }
internal string[] readSettings(string text) { errors.Clear(); labelItems.Clear(); fields.Clear(); history.Clear(); fields.Add("[QRlink]", "?"); fields.Add("[version]", "?"); int line = 0; int first = 1; validSerialMin = 0; validSerialMax = int.MaxValue; lastPrintedSerno = -1; repeatAcross = 1; repeatDown = 1; Pen pen = new Pen(Color.Black, 0.3f); Font font = new Font("Verdana", 6); StringReader sr = new StringReader(text); while (true) { line++; string ln = sr.ReadLine(); if (ln == null) { break; } try { if ((ln.IndexOf('[') == 0) && (ln.IndexOf("]=") > 0)) { string name = ln.Substring(0, ln.IndexOf("]=") + 1); string value = ln.Substring(ln.IndexOf("]=") + 2); if (fields.ContainsKey(name)) { fields[name] = value; } else { fields.Add(name, value); } if (name == "[version]") { lastPrintedVersion = value; } } else if (ln.StartsWith("topleft:")) { string[] s = ln.Substring(8).Split(','); origin = new PointF(float.Parse(s[0]), float.Parse(s[1])); } else if (ln.StartsWith("pitch:")) { string[] s = ln.Substring(6).Split(','); pitch = new SizeF(float.Parse(s[0]), float.Parse(s[1])); } else if (ln.StartsWith("across:")) { repeatAcross = int.Parse(ln.Substring(7)); } else if (ln.StartsWith("down:")) { repeatDown = int.Parse(ln.Substring(5)); } else if (ln.StartsWith("valid_serial_min:")) { validSerialMin = int.Parse(ln.Substring(17)); } else if (ln.StartsWith("valid_serial_max:")) { validSerialMax = int.Parse(ln.Substring(17)); } else if (ln.StartsWith("clear:")) { labelItems.Clear(); pen = new Pen(Color.Black, 0.3f); font = new Font("Verdana", 6); } else if (ln.StartsWith("font:")) { string[] s = ln.Substring(5).Split(','); font = new Font(s[0], float.Parse(s[1])); } else if (ln.StartsWith("pen:")) { string[] s = ln.Substring(4).Split(','); if (s.Length == 1) { pen = new Pen(Color.FromName(s[0])); } pen = new Pen(Color.FromName(s[0]), float.Parse(s[1])); } else if (ln.StartsWith("text:")) { labelItems.Add(new HText(this, ln, font)); } else if (ln.StartsWith("offset:")) { labelItems.Add(new Offset(this, ln)); } else if (ln.StartsWith("circle:")) { labelItems.Add(new Circle(this, ln, pen)); } else if (ln.StartsWith("line:")) { labelItems.Add(new Line(this, ln, pen)); } else if (ln.StartsWith("QRcode:")) { labelItems.Add(new QRCode(this, ln)); } else if (ln.StartsWith("graphic:")) { labelItems.Add(new GraphicFile(this, ln)); } else if (ln.StartsWith("PRINTED:")) { PrintRecord pr = new PrintRecord(ln); history.Add(pr); first = pr.start; lastPrintedSerno = pr.end; if (pr.version != "") { lastPrintedVersion = pr.version; fields["[version]"] = pr.version; } } else if (ln.Trim() == "") { } else if (ln.StartsWith("\\") || ln.StartsWith("/")) { } else { errors.Add("Line " + line.ToString() + " :" + ln + " ???"); } } catch (Exception e) { errors.Add("Line " + line.ToString() + " :" + ln + "\r\n " + e.Message); } } resizeLabel(); return(errors.ToArray()); }