// 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();
		}
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #6
0
        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);
        }
Exemple #8
0
        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;
        }
Exemple #9
0
        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();
            }
        }
Exemple #10
0
        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();
        }
Exemple #11
0
        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);
            }
        }
Exemple #13
0
        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();
        }
Exemple #18
0
        //合并文档,将文档合并到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();
        }
Exemple #19
0
        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);
        }
Exemple #22
0
        /// <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;
            }
        }
Exemple #24
0
        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);
            }
        }
Exemple #25
0
        /// <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");
        }
Exemple #26
0
        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);
            }
        }
Exemple #28
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);
            //}
        }
Exemple #29
0
        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;
        }
Exemple #30
0
 /// <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");
     }
 }