// Serializes a snapshot of the FlowDocument in view to XPS (output.container) private void XPSClick(object sender, RoutedEventArgs e) { Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog(); sfd.OverwritePrompt = true; sfd.Title = "Serialize to XPS Document"; sfd.DefaultExt = "xps"; sfd.Filter = "XPS Document(*.xps)|*.xps"; bool? success = sfd.ShowDialog(); if (success.HasValue == false || success == false) { return; } DocumentPaginator paginator = ((IDocumentPaginatorSource)currentFlowDocumentReader.Document).DocumentPaginator; Package pckg = Package.Open(sfd.FileName, FileMode.Create); XpsDocument xd = new XpsDocument(pckg); XpsDocumentWriter xdp = XpsDocument.CreateXpsDocumentWriter(xd); xdp.Write(paginator); xd.Close(); }
public static string SaveXPS(FixedPage page, string pageName) { //FixedDocument fixedDoc = new FixedDocument();//创建一个文档 //fixedDoc.DocumentPaginator //PageContent pageContent = new PageContent(); //((IAddChild)pageContent).AddChild(page); //fixedDoc.Pages.Add(pageContent);//将对象加入到当前文档中 string path = string.Format("{0}\\RetailTicket\\{1}", Environment.CurrentDirectory, DateTime.Now.ToString("yyyyMMdd")); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path += string.Format("\\{0}.xps", pageName); XpsDocument xpsDocument = new XpsDocument(path, FileAccess.Write); XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(xpsDocument); xpsdw.Write(page);//写入XPS文件 xpsDocument.Close(); return(path); }
private void Print_Clicked(object sender, RoutedEventArgs e) { string root = "D:/HandIndicator"; if (!Directory.Exists(root)) { Directory.CreateDirectory(root); } string pathXPS = $"{root}/{ViewModelLocator.Instance.Main.Name}_{DateTime.Now.ToString("dd_MMM_yyyy_hh_mm_ss")}.xps"; string pathPDF = $"{root}/{ViewModelLocator.Instance.Main.Name}_{DateTime.Now.ToString("dd_MMM_yyyy_hh_mm_ss")}.pdf"; XpsDocument doc = new XpsDocument(pathXPS, FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(MainContent); doc.Close(); PdfSharp.Xps.XpsConverter.Convert(pathXPS, pathPDF, 0); MessageBox.Show($"In thành công. Xem file tại {pathPDF}", "Alert", MessageBoxButton.OK); }
public void LoadXps(FlowDocument m_doc) { //构造一个基于内存的xps document MemoryStream ms = new MemoryStream(); Package package = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); Uri DocumentUri = new Uri("pack://InMemoryDocument.xps"); PackageStore.RemovePackage(DocumentUri); PackageStore.AddPackage(DocumentUri, package); XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.NotCompressed, DocumentUri.AbsoluteUri); //将flow document写入基于内存的xps document中去 XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); writer.Write(((IDocumentPaginatorSource)m_doc).DocumentPaginator); //获取这个基于内存的xps document的fixed document docViewer.Document = xpsDocument.GetFixedDocumentSequence(); //关闭基于内存的xps document xpsDocument.Close(); }
private void OnCreateXps(object sender, RoutedEventArgs e) { var gregorianCalendar = new GregorianCalendar(); var weekNumber = gregorianCalendar.GetWeekOfYear(_menus[0].Day, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); var fileName = $"menuplan{weekNumber}"; var dlg = new SaveFileDialog { FileName = fileName, DefaultExt = "xps", Filter = "XPS Documents|*.xps|All Files|*.*", AddExtension = true }; if (dlg.ShowDialog() == true) { var doc = new XpsDocument(dlg.FileName, FileAccess.Write, CompressionOption.Fast); var writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.WritingCompleted += delegate { doc.Close(); }; writer.WriteAsync(_fixedDocument); } }
public static void ExportXps(Uri path, FrameworkElement surface) { if (path == null) { return; } Transform transform = surface.LayoutTransform; surface.LayoutTransform = null; Size size = new Size(surface.Width, surface.Height); surface.Measure(size); surface.Arrange(new Rect(size)); Package package = Package.Open(path.LocalPath, FileMode.Create); XpsDocument doc = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(surface); doc.Close(); package.Close(); surface.LayoutTransform = transform; }
//FixedPage public static string SaveXPS(FlowDocument page, bool isSaved, string strType) { string containerName = GetXPSFromDialog(isSaved, strType); if (containerName != null) { try { File.Delete(containerName); } catch (Exception e) { MessageWindow2.Show(e.Message); } XpsDocument _xpsDocument = new XpsDocument(containerName, FileAccess.Write); XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(_xpsDocument); //xpsdw.Write(page);//写入XPS文件 xpsdw.Write(((IDocumentPaginatorSource)page).DocumentPaginator); _xpsDocument.Close(); } return(containerName); }
public PrintWindow(IDocumentPaginatorSource source) { // Save our source for this print preview window _source = source; InitializeComponent(); PrintDialog dialog = new PrintDialog(); PrintQueue pq = dialog.PrintQueue; bool?result = dialog.ShowDialog(); if (result != true) { return; } // Create an XPS Document of our control... if (File.Exists("printPreview.xps")) { File.Delete("printPreview.xps"); } var xpsDocument = new XpsDocument("printPreview.xps", FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); // Write the XPS file writer.Write(_source.DocumentPaginator); Document = xpsDocument.GetFixedDocumentSequence(); xpsDocument.Close(); // Update the preview fields PrintWindowVM = new PrintWindowViewModel(_source); this.DataContext = PrintWindowVM; PreviewDocument.Document = Document; }
private void OnCreateXPS(object sender, RoutedEventArgs e) { var c = new GregorianCalendar(); int weekNumber = c.GetWeekOfYear(menus[0].Day, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); string fileName = String.Format("menuplan{0}", weekNumber); var dlg = new SaveFileDialog { FileName = fileName, DefaultExt = "xps", Filter = "XPS Documents|*.xps|All Files|*.*", AddExtension = true }; if (dlg.ShowDialog() == true) { XpsDocument doc = new XpsDocument(dlg.FileName, FileAccess.Write, CompressionOption.Fast); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(fixedDocument); doc.Close(); } }
public static void LoadManyXps(List <FlowDocument> m_doclist, DocumentViewer docViewer) { //------------------定义新文档的结构 FixedDocumentSequence newFds = new FixedDocumentSequence();//创建一个新的文档 for (int i = 0; i < m_doclist.Count; i++) { //构造一个基于内存的xps document MemoryStream ms = new MemoryStream(); Package package = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); Uri DocumentUri = new Uri("pack://InMemoryDocument" + i.ToString() + ".xps"); PackageStore.RemovePackage(DocumentUri); PackageStore.AddPackage(DocumentUri, package); XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.Fast, DocumentUri.AbsoluteUri); //将flow document写入基于内存的xps document中去 XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); writer.Write(((IDocumentPaginatorSource)m_doclist[i]).DocumentPaginator); DocumentReference newDocRef = AddPage(xpsDocument);//加入第一个文件 newFds.References.Add(newDocRef); //关闭基于内存的xps document xpsDocument.Close(); } string newFile = "xpsShow.xps"; File.Delete(newFile); //xps写入新文件 XpsDocument NewXpsDocument = new XpsDocument("xpsShow.xps", System.IO.FileAccess.ReadWrite); XpsDocumentWriter xpsDocumentWriter = XpsDocument.CreateXpsDocumentWriter(NewXpsDocument); xpsDocumentWriter.Write(newFds); //获取这个基于内存的xps document的fixed document docViewer.Document = NewXpsDocument.GetFixedDocumentSequence(); NewXpsDocument.Close(); }
public void WriteSource(IEnumerable <ISourceFile> source, string outputFile, int maxPages = 50, int fontSize = 12) { const double columnWidth = 400; var document = new XpsDocument(outputFile, FileAccess.ReadWrite); var flowDoc = new FlowDocument { ColumnWidth = columnWidth, PagePadding = new Thickness(35) }; var paginator = ((IDocumentPaginatorSource)flowDoc).DocumentPaginator; foreach (var sourceFile in source) { int i = 0; var src = sourceFile.Contents; var para = new Paragraph { FontSize = fontSize }; flowDoc.Blocks.Add(para); do { var txt = src[i]; var run = new Run(txt); para.Inlines.Add(run); var lb = new LineBreak(); para.Inlines.Add(lb); paginator.ComputePageCount(); i++; } while (i < src.Length && paginator.PageCount <= maxPages); } var docWriter = XpsDocument.CreateXpsDocumentWriter(document); docWriter.Write(paginator); document.Close(); }
/// <summary> /// 这个静态方法主要是显示选择对话框以提供文件的保存位置 /// 将传入的FixedPage对象数组(多页)写入到.xps文件 /// </summary> /// <param name="page"></param> /// <param name="page"></param> /// <param name="isSaved"></param> /// <returns></returns> public static bool SaveXPS(FixedPage[] page, bool isSaved, int iPageCount) { FixedDocument fixedDoc = new FixedDocument();//创建一个文档 fixedDoc.DocumentPaginator.PageSize = new Size(96 * 8.5, 96 * 11); PageContent[] pageContent = new PageContent[iPageCount]; for (int i = 0; i < iPageCount; i++) { pageContent[i] = new PageContent(); ((IAddChild)pageContent[i]).AddChild(page[i]); fixedDoc.Pages.Add(pageContent[i]);//将对象加入到当前文档中 } FileHelper fh = new FileHelper(); string containerName = GetXPSFromDialog(isSaved); if (containerName != null) { try { File.Delete(containerName); } catch (Exception e) { MessageBox.Show(e.Message); } XpsDocument _xpsDocument = new XpsDocument(containerName, FileAccess.Write); XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(_xpsDocument); xpsdw.Write(fixedDoc);//写入XPS文件 _xpsDocument.Close(); return(true); } else { return(false); } }
private void MenuItem_Click(object sender, RoutedEventArgs e) { var dialog = new SaveFileDialog { AddExtension = true, DefaultExt = "pdf", Filter = "PDF Document (*.pdf)|*.pdf" }; //dialog.FileName = "test"; // TODO give correct name if (dialog.ShowDialog() == false) { return; } try { string targetFile = System.IO.Path.GetTempFileName(); System.Diagnostics.Debug.Print(targetFile); var xpsDocument = new XpsDocument(targetFile, FileAccess.ReadWrite); var xpsWriter = XpsDocument.CreateXpsDocumentWriter(xpsDocument); xpsWriter.Write(_printableDocument); xpsDocument.Close(); using (var filestream = File.Open(targetFile, FileMode.Open, FileAccess.ReadWrite)) { var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(filestream); PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, dialog.FileName, 0); } } catch (Exception ex) { throw ex; } // TODO: Delete xps }
private XpsDocument VisualToXpsDocument(FrameworkElement printContent, PrinterOrientation orientation) { if (File.Exists(printPreviewTempPathFileName)) { File.Delete(printPreviewTempPathFileName); } XpsDocument xpsDocument = new XpsDocument(printPreviewTempPathFileName, FileAccess.ReadWrite); FixedPage page = new FixedPage(); if (printContent.Parent != null && printContent.Parent is FixedPage) { ((FixedPage)printContent.Parent).Children.Remove(printContent); } page.Children.Add(printContent); if (this.printerOrientation == orientation) { page.Width = printContent.Width; page.Height = printContent.Height; } else { page.Width = printContent.Height; page.Height = printContent.Width; } PageContent pageContent = new PageContent(); ((IAddChild)pageContent).AddChild(page); FixedDocument doc = new FixedDocument(); doc.Pages.Add(pageContent); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); writer.Write(doc); return(xpsDocument); }
public string CreateXps(int i) { if (i < 0 && i >= tempPagesToShow.ToArray().Length) return null; FileStream fs = new FileStream(xpspath + _pagename[i] + ".xps", FileMode.OpenOrCreate); FixedPage page = tempPagesToShow[i]; System.IO.Packaging.Package np = System.IO.Packaging.Package.Open(fs, FileMode.OpenOrCreate, FileAccess.ReadWrite); XpsDocument xpsdoc = new XpsDocument(np); _pageurls.Add(xpspath + _pagename[i] + ".xps"); XpsDocumentWriter docWriter = XpsDocument.CreateXpsDocumentWriter(xpsdoc); docWriter.Write(page); xpsdoc.Close(); np.Close(); fs.Dispose(); fs.Close(); return xpspath + _pagename[i] + ".xps"; }
public void Split(string originalDocument, string detinationDocument) { using (Package package = Package.Open(originalDocument, FileMode.Open, FileAccess.Read)) { using (Package packageDest = Package.Open(detinationDocument)) { string inMemoryPackageName = "memorystream://miXps.xps"; Uri packageUri = new Uri(inMemoryPackageName); PackageStore.AddPackage(packageUri, package); XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.Maximum, inMemoryPackageName); XpsDocument xpsDocumentDest = new XpsDocument(packageDest, CompressionOption.Normal, detinationDocument); var fixedDocumentSequence = xpsDocument.GetFixedDocumentSequence(); DocumentReference docReference = xpsDocument.GetFixedDocumentSequence().References.First(); FixedDocument doc = docReference.GetDocument(false); var content = doc.Pages[0]; var fixedPage = content.GetPageRoot(false); var writter = XpsDocument.CreateXpsDocumentWriter(xpsDocumentDest); writter.Write(fixedPage); xpsDocumentDest.Close(); xpsDocument.Close(); } } }
private void Button_Click(object sender, RoutedEventArgs e) { if (doc != null) { doc.Close(); } if (package != null) { PackageStore.RemovePackage(PackUri); package.Flush(); package.Close(); } var ms = new MemoryStream(); package = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); doc = new XpsDocument(package, CompressionOption.SuperFast, PackUriName); PackageStore.AddPackage(PackUri, package); var pg = new SampleReport { Report = { DataContext = new SampleVM() } }; var report = pg.report; //var report = pg.Report; report.HeaderHeight = int.Parse(hh.Text); report.FooterHeight = int.Parse(fh.Text); report.PagePadding = new Thickness(int.Parse(paddingLeft.Text), int.Parse(paddingTop.Text), int.Parse(paddingRight.Text), int.Parse(paddingBottom.Text)); XpsDocumentWriter xpsWriter = XpsDocument.CreateXpsDocumentWriter(doc); xpsWriter.Write(new XpsReportPaginator(report, new Size(96 / 2.54 * 21, 96 / 2.54 * 28.7))); dv.Document = doc.GetFixedDocumentSequence(); }
//合并文档,将文档合并到xpsShow.xps里面 public void MergeDocument() { string newFile = Path + "xpsShow.xps"; List <string> lsFileName = new List <string>(); lsFileName.AddRange(Directory.GetFiles(Path)); lsFileName.Sort(); FixedDocumentSequence newFds = new FixedDocumentSequence();//创建一个新的文档结构 foreach (var item in lsFileName) { if (count < 50) { setProcess(count); count++; } if (item != "xpsShow.xps" && !item.Contains(".xps")) { DocumentReference newDocRef = AddPage(item); newFds.References.Add(newDocRef); } } File.Delete(newFile); setProcess(46); //xps写入新文件 XpsDocument NewXpsDocument = new XpsDocument(newFile, System.IO.FileAccess.ReadWrite); XpsDocumentWriter xpsDocumentWriter = XpsDocument.CreateXpsDocumentWriter(NewXpsDocument); setProcess(47); xpsDocumentWriter.Write(newFds); NewXpsDocument.Close(); }
public static void DoItTTT() { string filename = "c:\\tmp\\goof.xps"; string newFilename = "c:\\tmp\\new_goof.xps"; XpsDocument xpsOld = new XpsDocument(filename, System.IO.FileAccess.Read); System.Windows.Documents.FixedDocumentSequence seqOld = xpsOld.GetFixedDocumentSequence(); System.IO.Packaging.Package container = System.IO.Packaging.Package.Open(newFilename, System.IO.FileMode.Create); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(new XpsDocument(container)); System.Windows.Documents.Serialization.SerializerWriterCollator vxpsd = writer.CreateVisualsCollator(); int pageno = 1; foreach (System.Windows.Documents.DocumentReference r in seqOld.References) { System.Windows.Documents.FixedDocument d = r.GetDocument(false); foreach (System.Windows.Documents.PageContent pc in d.Pages) { System.Windows.Documents.FixedPage fixedPage = pc.GetPageRoot(false); double width = fixedPage.Width; double height = fixedPage.Height; System.Windows.Size sz = new System.Windows.Size(width, height); fixedPage.Measure(sz); fixedPage.Arrange(new System.Windows.Rect(new System.Windows.Point(), sz)); fixedPage.UpdateLayout(); ContainerVisual newpage = new ContainerVisual(); newpage.Children.Add(fixedPage); newpage.Children.Add(CreateWatermark(400, 400, "hello world")); pageno++; vxpsd.Write(newpage); } } vxpsd.EndBatchWrite(); container.Close(); xpsOld.Close(); }
private void ToPdf(Boolean guardar) { MemoryStream lMemoryStream = new MemoryStream(); Package package = Package.Open(lMemoryStream, FileMode.Create); XpsDocument doc = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(print); doc.Close(); package.Close(); using (var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream)) { String f = String.Format("{0:yyyyMMdd}", DateTime.Now); if (guardar) { SaveFileDialog dialog = new SaveFileDialog() { FileName = $"InformeCompra" + Compras_FiltroCompra.fechaDesde.Replace("/", "_") + "-" + Compras_FiltroCompra.fechaHasta.Replace("/", "_"), Filter = "Text Files(*.pdf)|*.pdf|All(*.*)|*" }; if (dialog.ShowDialog() == true) { PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, dialog.FileName, 0); rutaPdf = (dialog.FileName); System.Diagnostics.Process.Start(rutaPdf); } } else { string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Informe{variable}{f}"); PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, path, 0); rutaPdf = path; } } }
private void PrintButton_Click(object sender, RoutedEventArgs e) { string fileName = System.IO.Path.GetRandomFileName(); using (XpsDocument doc = new XpsDocument(fileName, FileAccess.ReadWrite)) { var writer = XpsDocument.CreateXpsDocumentWriter(doc); //Grid g = new Grid(); //g.Width = 816; //g.Height = 1056; //Viewbox v = new Viewbox(); //Border b = new Border(); //b.BorderBrush = new SolidColorBrush(Colors.Black); //b.BorderThickness = new Thickness(2); //b.Margin = new Thickness(25); //HexagonGrid hexgrid = new HexagonGrid(); //foreach (var planet in _profiles) //{ // HexButton hb = new HexButton(planet); // hexgrid.Children.Add(hb); // Grid.SetRow(hb, planet.Column); // Grid.SetColumn(hb, planet.Row); //} //v.Child = b; //b.Child = hexgrid; //g.Children.Add(v); //g.UpdateLayout(); //g.Arrange(new Rect(new Point(0,0), new Size(816, 1056))); writer.Write(MainViewbox); FixedDocumentSequence fds = doc.GetFixedDocumentSequence(); var p = new PrintWindow(fds); p.ShowDialog(); } File.Delete(fileName); }
/// <summary> /// Print text from the stream. /// </summary> private IDocumentPaginatorSource PrintTextFromStream() { // Load the text data, FlowDocument copy = new FlowDocument(); TextRange dest = new TextRange(copy.ContentStart, copy.ContentEnd); dest.Load(_reader, DataFormats.Text); // Set the font of the text in the stream. if (_font != null) { copy.Foreground = _brush; copy.FontFamily = _font.FontFamily; copy.FontStretch = _font.Stretch; copy.FontStyle = _font.Style; copy.FontWeight = _font.Weight; } // Used to set the correct page size. // This needs some more work. copy.FontSize = _fontSize; // Create the fixed document from the flow document. var paginator = new DocumentPaginatorWrapper(((IDocumentPaginatorSource)copy).DocumentPaginator, _pageSize, _margin); var package = Package.Open(new MemoryStream(), FileMode.Create, FileAccess.ReadWrite); var packUri = new Uri("pack://temptextstream.xps"); PackageStore.RemovePackage(packUri); PackageStore.AddPackage(packUri, package); var xps = new XpsDocument(package, CompressionOption.NotCompressed, packUri.ToString()); XpsDocument.CreateXpsDocumentWriter(xps).Write(paginator); FixedDocument fixedDocument = xps.GetFixedDocumentSequence().References[0].GetDocument(true); // Return the document source. return(fixedDocument); }
private void btn_print_track_Click(object sender, RoutedEventArgs e) { if (IsLoaded) { btn_print_track.IsEnabled = false; string selectedId = labelToneId.Text; labelToneId.Text = num_meta_id.Value.ToString(); var dialog = new CommonSaveFileDialog(); dialog.AddToMostRecentlyUsedList = false; dialog.Title = "Where do you want to save the .pdf file?"; dialog.DefaultFileName = "Disk_" + num_meta_id.Value.ToString() + ".pdf"; dialog.DefaultExtension = "pdf"; dialog.Filters.Add(new CommonFileDialogFilter("PDF document", "pdf")); CommonFileDialogResult result = dialog.ShowDialog(); if (result == CommonFileDialogResult.Ok) { MemoryStream lMemoryStream = new MemoryStream(64 * 1024); Package package = Package.Open(lMemoryStream, FileMode.Create); XpsDocument doc = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(ChartArea); doc.Close(); package.Close(); var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream); PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, dialog.FileName, 0); labelToneId.Text = selectedId; } btn_print_track.IsEnabled = true; } }
private void Print() { //XPS print string filename = Directory.GetCurrentDirectory() + document_name + ".xps"; try { XpsDocument doc = new XpsDocument(filename, FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); writer.Write(PrintGrid); doc.Close(); //odpri dokument DocumentViewer viewer = new DocumentViewer(); XpsDocument xdoc = new XpsDocument(filename, FileAccess.Read); viewer.Document = xdoc.GetFixedDocumentSequence(); //prikaži PrikaziDokument pd = new PrikaziDokument(filename); pd.Content = viewer; pd.WindowState = WindowState.Maximized; pd.ShowDialog(); //Delete file if (pd.DialogResult == true) { var myXpsUri = xdoc.Uri; var theXpsPackage = System.IO.Packaging.PackageStore.GetPackage(myXpsUri); theXpsPackage.Close(); System.IO.Packaging.PackageStore.RemovePackage(myXpsUri); File.Delete(filename); } } catch (Exception ex) { MessageBox.Show("Podrobnosti:" + System.Environment.NewLine + System.Environment.NewLine + ex.Message, "Težave pri ustvarjanju dokumenta", MessageBoxButton.OK, MessageBoxImage.Error); } }
/// <summary> /// Export whole canva to XPS /// </summary> /// <param name="fileName">Path to file</param> public void ExportToXps(string fileName) { Transform layoutTransform = ModelDesignerCanvas.LayoutTransform; ModelDesignerCanvas.LayoutTransform = null; var size = new Size(ViewModel.CanvasWidth, ViewModel.CanvasHeight); ModelDesignerCanvas.Measure(size); ModelDesignerCanvas.Arrange(new Rect(size)); Package package = Package.Open(fileName, FileMode.Create); XpsDocument document = new XpsDocument(package); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(document); writer.Write(ModelDesignerCanvas); document.Close(); package.Close(); ModelDesignerCanvas.LayoutTransform = layoutTransform; Output.WriteLine("FILE SAVED"); }
public static void CreateXPSFromPNGFiles(string sourceImagesPath, string xpsFIlePath) { var bitmaps = new List <System.Drawing.Bitmap>(); foreach (var file in Directory.EnumerateFiles(sourceImagesPath, "*.png")) { bitmaps.Add(new System.Drawing.Bitmap(file)); } FixedDocument doc = new FixedDocument(); foreach (var bitmap in bitmaps) { ImageSource imageSource; using (var stream = new MemoryStream()) { bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); stream.Position = 0; imageSource = BitmapFrame.Create(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad); } var page = new FixedPage(); page.Children.Add(new System.Windows.Controls.Image { Source = imageSource }); doc.Pages.Add(new PageContent { Child = page }); } var xps = new XpsDocument(xpsFIlePath, FileAccess.Write, System.IO.Packaging.CompressionOption.Fast); var writer = XpsDocument.CreateXpsDocumentWriter(xps); writer.Write(doc); xps.Close(); }
public static void ExportVisualAsPdf(Visual visual) { SaveFileDialog saveFileDialog = new SaveFileDialog { DefaultExt = ".pdf", Filter = "PDF Documents (.pdf)|*.pdf" }; bool?result = saveFileDialog.ShowDialog(); if (result != true) { return; } using (MemoryStream memoryStream = new MemoryStream()) { System.IO.Packaging.Package package = System.IO.Packaging.Package.Open(memoryStream, FileMode.OpenOrCreate); XpsDocument xpsDocument = new XpsDocument(package); XpsDocumentWriter xpsDocumentWriter = XpsDocument.CreateXpsDocumentWriter(xpsDocument); xpsDocumentWriter.Write(visual); xpsDocument.Close(); var packageUri = new Uri("memorystream://myXps.xps"); PackageStore.AddPackage(packageUri, package); XpsDocument doc = new XpsDocument(package, CompressionOption.SuperFast, packageUri.AbsoluteUri); XpsConverter.Convert(doc, saveFileDialog.FileName, 0); package.Close(); //var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(memoryStream); //XpsConverter.Convert(pdfXpsDoc, saveFileDialog.FileName, 0); } }
private void btnPrint_Click(object sender, RoutedEventArgs e) { if (File.Exists("printPreview.xps")) { File.Delete("printPreview.xps"); } var xpsDocument = new XpsDocument("printPreview.xps", FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); writer.Write(((IDocumentPaginatorSource)FD).DocumentPaginator); Document = xpsDocument.GetFixedDocumentSequence(); xpsDocument.Close(); var windows = new PrintWindow(Document); windows.ShowDialog(); //PrintDialog printDialog = new PrintDialog(); //if (printDialog.ShowDialog() == true) //{ // printDialog.PrintVisual(this, this.Title); //} }
public static void SaveFixedDocument(List <FixedPage> pageToContain) { string xpsPath = "C://Program Files (x86)//이주데이타//가로주택정비//" + "testFile.xps"; System.IO.File.Delete(xpsPath); FixedDocument currentDoc = new FixedDocument(); currentDoc.DocumentPaginator.PageSize = new Size(1240, 1753); for (int i = 0; i < pageToContain.Count(); i++) { currentDoc.Pages.Add(pageBinding(pageToContain[i])); } using (XpsDocument currentXpsDoc = new XpsDocument(xpsPath, FileAccess.ReadWrite)) { XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(currentXpsDoc); xw.Write(currentDoc); } return; }
/// <summary> /// Prints the document to the standard printer /// </summary> /// <param name="toFile">filename to store a copy of the document as file, set to null if not used</param> /// <param name="showPrintDlg">set to true if the standard windows printer dialog should come up</param> public void PrintDocument(string toFile, bool showPrintDlg) { FinalizeDocument(); if (toFile != null) { System.IO.File.Delete(toFile); XpsDocument xpsd = new XpsDocument(toFile, System.IO.FileAccess.ReadWrite); XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd); xw.Write(doc); xpsd.Close(); } else { PrintDialog prndlg = new PrintDialog(); if (showPrintDlg) { if (prndlg.ShowDialog().Value == false) { return; } } prndlg.PrintDocument(doc.DocumentPaginator, "Check-In Number"); } }