public static void SaveToPdf(this FlowDocument flowDoc, string filename)
        {
            MemoryStream xamlStream = new MemoryStream();

            XamlWriter.Save(flowDoc, xamlStream);
            File.WriteAllBytes("d:\\file.xaml", xamlStream.ToArray());

            IDocumentPaginatorSource text = flowDoc as IDocumentPaginatorSource;

            xamlStream.Close();

            MemoryStream memoryStream = new MemoryStream();
            Package      pkg          = Package.Open(memoryStream, FileMode.Create, FileAccess.ReadWrite);

            string pack = "pack://temp.xps";

            PackageStore.AddPackage(new Uri(pack), pkg);

            XpsDocument             doc = new XpsDocument(pkg, CompressionOption.SuperFast, pack);
            XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(doc), false);
            DocumentPaginator       pgn = text.DocumentPaginator;

            rsm.SaveAsXaml(pgn);

            MemoryStream xpsStream = new MemoryStream();
            var          writer    = new XpsSerializerFactory().CreateSerializerWriter(xpsStream);

            writer.Write(doc.GetFixedDocumentSequence());

            MemoryStream outStream = new MemoryStream();

            NiXPS.Converter.XpsToPdf(xpsStream, outStream);
            File.WriteAllBytes("file.pdf", outStream.ToArray());
        }
        public static void SaveToPdf(this FlowDocument flowDoc, string filename)
        {
            MemoryStream xamlStream = new MemoryStream();
            XamlWriter.Save(flowDoc, xamlStream);
            File.WriteAllBytes("d:\\file.xaml", xamlStream.ToArray());

            IDocumentPaginatorSource text = flowDoc as IDocumentPaginatorSource;
            xamlStream.Close();

            MemoryStream memoryStream = new MemoryStream();
            Package pkg = Package.Open(memoryStream, FileMode.Create, FileAccess.ReadWrite);

            string pack = "pack://temp.xps";
            PackageStore.AddPackage(new Uri(pack), pkg);

            XpsDocument doc = new XpsDocument(pkg, CompressionOption.SuperFast, pack);
            XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(doc), false);
            DocumentPaginator pgn = text.DocumentPaginator;
            rsm.SaveAsXaml(pgn);

            MemoryStream xpsStream = new MemoryStream();
            var writer = new XpsSerializerFactory().CreateSerializerWriter(xpsStream);
            writer.Write(doc.GetFixedDocumentSequence());

            MemoryStream outStream = new MemoryStream();
            NiXPS.Converter.XpsToPdf(xpsStream, outStream);
            File.WriteAllBytes("file.pdf", outStream.ToArray());
        }
 public static void SaveToXps(this DocumentPaginator paginator, string filename)
 {
     using (var stream = File.Create(filename)) {
         var factory = new XpsSerializerFactory();
         var writer  = factory.CreateSerializerWriter(stream);
         writer.Write(paginator);
     }
 }
Example #4
0
 public XPSDocumentPageWrapper(DocumentPage documentPage)
 {
     if (documentPage != null)
     {
         //Serialize the DocumentPage
         XpsSerializerFactory factory = new XpsSerializerFactory();
         MemoryStream         ms      = new MemoryStream();
         SerializerWriter     writer  = factory.CreateSerializerWriter(ms);
         writer.Write(documentPage.Visual);
         m_XPSDocumentPageObject = ms.ToArray();
     }
 }
Example #5
0
        /// <summary>
        /// Render a UIElement such that the visual tree is generated,
        /// without actually displaying the UIElement
        /// anywhere
        /// </summary>
        public static void CreateVisualTree(this UIElement element)
        {
            var fixedDoc    = new FixedDocument();
            var pageContent = new PageContent();
            var fixedPage   = new FixedPage();

            fixedPage.Children.Add(element);
            (pageContent as IAddChild).AddChild(fixedPage);
            fixedDoc.Pages.Add(pageContent);

            var f = new XpsSerializerFactory();
            var w = f.CreateSerializerWriter(new MemoryStream());

            w.Write(fixedDoc);
        }
        /// <summary>
        /// Render a UIElement such that the visual tree is generated, 
        /// without actually displaying the UIElement
        /// anywhere
        /// </summary>
        public static void CreateVisualTree(this UIElement element)
        {
            var fixedDoc = new FixedDocument();
            var pageContent = new PageContent();
            var fixedPage = new FixedPage();
            fixedPage.Children.Add(element);
            ((IAddChild)pageContent).AddChild(fixedPage);
            fixedDoc.Pages.Add(pageContent);

            var f = new XpsSerializerFactory();
            using(var s = new MemoryStream())
            {
                var w = f.CreateSerializerWriter(s);
                w.Write(fixedDoc);
            }
        }
Example #7
0
        /// <summary>
        /// Render a UIElement such that the visual tree is generated,
        /// without actually displaying the UIElement
        /// anywhere
        /// </summary>
        public static void CreateVisualTree(this UIElement element)
        {
            //var hwndSource = new HwndSource(new HwndSourceParameters()) { RootVisual = windowContent };

            var fixedDoc    = new FixedDocument();
            var pageContent = new PageContent();
            var fixedPage   = new FixedPage();

            fixedPage.Children.Add(element);
            (pageContent as IAddChild).AddChild(fixedPage);
            fixedDoc.Pages.Add(pageContent);

            var f = new XpsSerializerFactory();
            var w = f.CreateSerializerWriter(new MemoryStream());

            w.Write(fixedDoc);

            fixedPage.Children.Remove(element);
        }
Example #8
0
		public static void CreateVisualTree(this UIElement element)
		{
			try
			{
				var fixedDoc = new FixedDocument();
				var pageContent = new PageContent();
				var fixedPage = new FixedPage();
				fixedPage.Children.Add(element);
				(pageContent as IAddChild).AddChild(fixedPage);
				fixedDoc.Pages.Add(pageContent);
				
				var f = new XpsSerializerFactory();
				var w = f.CreateSerializerWriter(new MemoryStream());
				w.Write(fixedDoc);

				fixedPage.Children.Remove(element);
			}
			catch (Exception)
			{ }
		}
Example #9
0
 public XPSDocumentPageWrapper(DocumentPage documentPage)
 {
     if (documentPage != null)
     {
         //Serialize the DocumentPage
         XpsSerializerFactory factory = new XpsSerializerFactory();
         MemoryStream ms = new MemoryStream();
         SerializerWriter writer=  factory.CreateSerializerWriter(ms);
         writer.Write(documentPage.Visual);
         m_XPSDocumentPageObject = ms.ToArray();
     }
 }