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); } }
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(); } }
/// <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); } }
/// <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); }
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) { } }
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(); } }