/// <summary> /// Render visual to printer. /// </summary> private void Render(Visual visual, string uri) { if (visual == null) { throw new ArgumentNullException("visual"); } int dpiX = _jobTicket.PageResolution.ResolutionX; int dpiY = _jobTicket.PageResolution.ResolutionY; if (dpiX < 0) { dpiX = 600; } if (dpiY < 0) { dpiY = 600; } AssertPositive(dpiX, "PageResolution.ResolutionX"); AssertPositive(dpiY, "PageResolution.ResolutionY"); int sizeX = (int)(_jobTicket.PageMediaSize.MediaSizeX * dpiX); int sizeY = (int)(_jobTicket.PageMediaSize.MediaSizeY * dpiY); AssertPositive(sizeX, "PageCanvasSizeCap.CanvasSizeX"); AssertPositive(sizeY, "PageCanvasSizeCap.CanvasSizeY"); if (IsPremium()) { VisualTreeFlattener.SaveAsXml(visual, _writer, new ContainerFixedXamlDesigner(_eDocJob, uri)); } }
static int vipID; // = 0; static void SerializeVisual(Visual visual, double width, double height, String filename) { FileStream stream = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite); XmlTextWriter writer = new System.Xml.XmlTextWriter(stream, System.Text.Encoding.UTF8); writer.Formatting = System.Xml.Formatting.Indented; writer.Indentation = 4; writer.WriteStartElement("FixedDocument"); writer.WriteAttributeString("xmlns", "http://schemas.microsoft.com/winfx/2006/xaml/presentation"); writer.WriteAttributeString("xmlns:x", "http://schemas.microsoft.com/winfx/2006/xaml"); writer.WriteStartElement("PageContent"); writer.WriteStartElement("FixedPage"); writer.WriteAttributeString("Width", width.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("Height", height.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("Background", "White"); writer.WriteStartElement("Canvas"); System.IO.StringWriter resString = new StringWriter(CultureInfo.InvariantCulture); System.Xml.XmlTextWriter resWriter = new System.Xml.XmlTextWriter(resString); resWriter.Formatting = System.Xml.Formatting.Indented; resWriter.Indentation = 4; System.IO.StringWriter bodyString = new StringWriter(CultureInfo.InvariantCulture); System.Xml.XmlTextWriter bodyWriter = new System.Xml.XmlTextWriter(bodyString); bodyWriter.Formatting = System.Xml.Formatting.Indented; bodyWriter.Indentation = 4; VisualTreeFlattener.SaveAsXml(visual, resWriter, bodyWriter, filename); resWriter.Close(); bodyWriter.Close(); writer.Flush(); writer.WriteRaw(resString.ToString()); writer.WriteRaw(bodyString.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); // FixedDocument writer.Close(); stream.Close(); }
/// <summary> /// Serialize a visual to fixed (S0) XAML /// </summary> /// <param name="visual"></param> /// <param name="writer"></param> static internal void SaveAsXml(Visual visual, System.Xml.XmlWriter writer) { VisualTreeFlattener.SaveAsXml(visual, writer, new FixedXamlDesigner()); }