Beispiel #1
0
        public void DoPrint()
        {
            if (curTable == null && type != Eod_Printing && curOrder == null)
            {
                return;
            }

            try
            {
                // Create a PrintHelper
                CreatePrintHelper();

                // Create a FlowDocument dynamically.
                FlowDocument doc = ph.CreateDocument();
                doc.Name = "FlowDoc";

                // Read the FlowDoucument xaml file
                //Stream flowDocumentStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestWPF.PrintWindow.xaml");
                //FileStream fs = new FileStream(startupProjectPath + "\\FlowDocument1.xaml", FileMode.Open, FileAccess.Read);
                //FlowDocument flowDocument = (FlowDocument)XamlReader.Load(fs);

                PrintToReal(doc);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        private void PrintSimpleTextButton_Click(object sender, RoutedEventArgs e)
        {
            // Create a FlowDocument dynamically.
            FlowDocument doc = ph.CreateDocument();

            doc.Name = "FlowDoc";

            // Create a PrintDialog
            PrintDialog printDlg = new PrintDialog();
            // Setting the printer
            //printDlg.PrintQueue =new PrintQueue(new PrintServer(), "the printer name");

            // Read the FlowDoucument xaml file
            //Stream flowDocumentStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestWPF.PrintWindow.xaml");
            //FileStream fs = new FileStream(startupProjectPath + "\\FlowDocument1.xaml", FileMode.Open, FileAccess.Read);
            //FlowDocument flowDocument = (FlowDocument)XamlReader.Load(fs);

            // Create IDocumentPaginatorSource from FlowDocument
            IDocumentPaginatorSource idpSource = doc;

            // Call PrintDocument method to send document to printer
            //printDlg.PrintDocument(idpSource.DocumentPaginator, "Hello WPF Printing.");

            // convert FlowDocument to FixedDocument
            var paginator = idpSource.DocumentPaginator;
            var package   = Package.Open(new MemoryStream(), FileMode.Create, FileAccess.ReadWrite);
            var packUri   = new Uri("pack://temp.xps");

            PackageStore.RemovePackage(packUri);
            PackageStore.AddPackage(packUri, package);
            var xps = new XpsDocument(package, CompressionOption.NotCompressed, packUri.ToString());

            XpsDocument.CreateXpsDocumentWriter(xps).Write(paginator);
            FixedDocument fdoc = xps.GetFixedDocumentSequence().References[0].GetDocument(true);

            DocumentViewer previewWindow = new DocumentViewer
            {
                Document = fdoc
            };

            Window printpriview = new Window();

            printpriview.Content = previewWindow;
            printpriview.Title   = "Print Preview";
            printpriview.Show();
        }