private static void WriteTextItem(XmlTextWriter xml, HDRealtimeItem data) { xml.WriteStartElement("text"); xml.WriteAttributeString("action", "update"); xml.WriteAttributeString("guid", data.Guid); foreach (HDFileListItem item in data.FileList.FileList) { FileStream file = new FileStream(item.path, FileMode.Open); System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } xml.WriteStartElement("file"); xml.WriteAttributeString("size", file.Length.ToString()); xml.WriteAttributeString("path", item.path); xml.WriteAttributeString("md5", sb.ToString()); xml.WriteEndElement(); // end file file.Close(); } xml.WriteEndElement(); // end text }
public static byte[] GenerateSinglelineTextXml(Size areaSize, string text, HDFont font) { MemoryStream stream = new MemoryStream(); XmlTextWriter xml = new XmlTextWriter(stream, Encoding.UTF8); xml.Formatting = System.Xml.Formatting.Indented; xml.WriteStartDocument(); xml.WriteStartElement("config.boo"); xml.WriteStartElement("content"); xml.WriteStartElement("channel"); xml.WriteAttributeString("setSize", "0"); xml.WriteEndElement(); xml.WriteStartElement("channel"); xml.WriteAttributeString("action", "add"); xml.WriteStartElement("area"); xml.WriteAttributeString("action", "add"); xml.WriteStartElement("rectangle"); xml.WriteAttributeString("x", "0"); xml.WriteAttributeString("y", "0"); xml.WriteAttributeString("width", areaSize.Width.ToString()); xml.WriteAttributeString("height", areaSize.Height.ToString()); xml.WriteEndElement(); // rectangle xml.WriteStartElement("materials"); HDRealtimeItem item = new HDRealtimeItem(); item.FileList = GetTextMaterials(areaSize, font, text, true); item.Guid = "abc"; item.type = HDRealtimeItemType.kContinuousText; WriteContinousTextItem(xml, item, true); xml.WriteEndElement(); // materials xml.WriteEndElement(); // area xml.WriteEndElement(); // channel xml.WriteEndElement(); // end content xml.WriteEndElement(); // end config.boo xml.Close(); //FileStream s = File.Create("D:\\t.xml"); //s.Write(stream.ToArray(), 0, stream.ToArray().Count()); //s.Close(); return(stream.ToArray()); }
private static void WriteContinousTextItem(XmlTextWriter xml, HDRealtimeItem data, bool create = false) { xml.WriteStartElement("text"); xml.WriteAttributeString("action", create ? "add" : "update"); xml.WriteAttributeString("guid", data.Guid); xml.WriteStartElement("singleMode"); xml.WriteValue(1); xml.WriteEndElement(); xml.WriteStartElement("pageCount"); xml.WriteValue(data.FileList.FileList.Length); xml.WriteEndElement(); // <continuousMove headCloseToTail="0" speed ="4" playType ="ByCount" byCount ="2000"/> xml.WriteStartElement("continuousMove"); xml.WriteAttributeString("headCloseToTail", "0"); xml.WriteAttributeString("speed", "4"); xml.WriteAttributeString("playType", "ByCount"); xml.WriteAttributeString("byCount", "2000"); xml.WriteEndElement(); foreach (HDFileListItem item in data.FileList.FileList) { FileStream file = new FileStream(item.path, FileMode.Open); System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } xml.WriteStartElement("file"); xml.WriteAttributeString("size", file.Length.ToString()); xml.WriteAttributeString("path", item.path); xml.WriteAttributeString("md5", sb.ToString()); xml.WriteEndElement(); // end file file.Close(); } xml.WriteEndElement(); // end image }