示例#1
0
        private void ShowPrintPreview()
        {
            // We have to clone the FlowDocument before we use different pagination settings for the export.
            RichTextDocument document = (RichTextDocument)fileService.ActiveDocument;
            FlowDocument     clone    = document.CloneContent();

            clone.ColumnWidth = double.PositiveInfinity;

            // Create a package for the XPS document
            MemoryStream packageStream = new MemoryStream();

            package = Package.Open(packageStream, FileMode.Create, FileAccess.ReadWrite);

            // Create a XPS document with the path "pack://temp.xps"
            PackageStore.AddPackage(new Uri(PackagePath), package);
            xpsDocument = new XpsDocument(package, CompressionOption.SuperFast, PackagePath);

            // Serialize the XPS document
            XpsSerializationManager serializer = new XpsSerializationManager(new XpsPackagingPolicy(xpsDocument), false);
            DocumentPaginator       paginator  = ((IDocumentPaginatorSource)clone).DocumentPaginator;

            serializer.SaveAsXaml(paginator);

            // Get the fixed document sequence
            FixedDocumentSequence documentSequence = xpsDocument.GetFixedDocumentSequence();

            // Create and show the print preview view
            PrintPreviewViewModel printPreviewViewModel = printPreviewViewModelFactory.CreateExport().Value;

            printPreviewViewModel.Document = documentSequence;
            previousView = shellViewModel.ContentView;
            shellViewModel.ContentView           = printPreviewViewModel.View;
            shellViewModel.IsPrintPreviewVisible = true;
            printPreviewCommand.RaiseCanExecuteChanged();
        }
        public PrintPreviewWindow(PatientRecordDetailsModel patient)
        {
            InitializeComponent();
            PrintPreviewViewModel printPreviewViewModel = new PrintPreviewViewModel(patient);

            PrintPreview.DataContext = printPreviewViewModel;
        }
示例#3
0
        private void ShowPrintPreview()
        {
            PrintPreviewViewModel printPreviewViewModel = printPreviewViewModelFactory.CreateExport().Value;

            printPreviewViewModel.Document = (RichTextDocument)fileService.ActiveDocument;
            previousView = shellViewModel.ContentView;
            shellViewModel.ContentView           = printPreviewViewModel.View;
            shellViewModel.IsPrintPreviewVisible = true;
            printPreviewCommand.RaiseCanExecuteChanged();
        }
示例#4
0
        public void ExecutePrintCommand()
        {
            MockPrintPreviewView printPreviewView = new MockPrintPreviewView();
            ShellService shellService = new ShellService();
            MockDocumentPaginatorSource document = new MockDocumentPaginatorSource();

            PrintPreviewViewModel printPreviewViewModel = new PrintPreviewViewModel(printPreviewView, shellService, document);
            Assert.AreEqual(document, printPreviewViewModel.Document);

            printPreviewViewModel.PrintCommand.Execute(null);
            Assert.IsTrue(printPreviewView.PrintCalled);
        }
        public PrintPreviewView(PrintPreviewViewModel viewModel)
        {
            InitializeComponent();

            _viewModel = viewModel;

            _viewModel.Close = this.Close;

            this.DataContext = viewModel;

            this.Loaded   += PrintPreviewWindow_Loaded;
            this.Unloaded += PrintPreviewWindow_Unloaded;
        }
示例#6
0
        protected IEnumerable <IResult> Preview(string name, BaseDocument doc)
        {
            var docSettings = doc.Settings;

            if (docSettings != null)
            {
                yield return(new DialogResult(new SimpleSettings(docSettings)));
            }

            var printResult = new PrintResult(name, doc);
            var model       = new PrintPreviewViewModel(printResult);

            yield return(new DialogResult(model, fullScreen: true));
        }
示例#7
0
        public static void PrintPicture(BitmapImage bitmapImage)
        {
            var config = new PrintConfig()
            {
                DataSource     = bitmapImage,
                DataSourceType = DataSourceTypeDefine.Image
            };

            var viewModel = new PrintPreviewViewModel(config);

            var view = new PrintPreviewView(viewModel);

            view.ShowDialog();
        }
示例#8
0
        public static void PrintDataTable(DataTable dt)
        {
            var config = new PrintConfig()
            {
                DataSource     = dt,
                DataSourceType = DataSourceTypeDefine.DataTable
            };

            var viewModel = new PrintPreviewViewModel(config);

            var view = new PrintPreviewView(viewModel);

            view.ShowDialog();
        }
示例#9
0
        private void ShowPrintPreview()
        {
            // Get the page size from the print dialog.
            var printDialog = new PrintDialog();
            var pageSize    = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);

            // Convert document into FixedDocument.
            var fixedDocument = TextEditor.CreateFixedDocument(pageSize, DisplayName);

            var viewModel = new PrintPreviewViewModel {
                PrintDocument = fixedDocument
            };

            // Show print preview dialog.
            _windowService.ShowDialog(viewModel);
        }
示例#10
0
        private void ShowPrintPreview()
        {
            if (TextEditor == null)
            {
                return;
            }

            Logger.Info(CultureInfo.InvariantCulture, "Showing print preview for Output window (selected view: \"{0}\").", SelectedView);

            // Get the page size from the print dialog.
            PrintDialog printDialog = new PrintDialog();
            var         pageSize    = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);

            // Convert document into FixedDocument.
            var fixedDocument = TextEditor.CreateFixedDocument(pageSize, DisplayName);

            var printPreview = new PrintPreviewViewModel {
                PrintDocument = fixedDocument
            };

            // Show print preview dialog.
            _windowService.ShowDialog(printPreview);
        }
示例#11
0
        public static void PrintControl(FrameworkElement element)
        {
            //将控件转化为图片...
            var rt = new RenderTargetBitmap((int)element.ActualWidth, (int)element.ActualHeight, 96, 96, PixelFormats.Pbgra32);

            rt.Render(element);

            var encoder = new PngBitmapEncoder();

            encoder.Frames.Add(BitmapFrame.Create(rt));
            var bitmapImage = new BitmapImage();

            using (Stream stream = new MemoryStream())
            {
                encoder.Save(stream);

                stream.Seek(0, SeekOrigin.Begin);
                stream.Position = 0;
                bitmapImage.BeginInit();
                bitmapImage.CacheOption  = BitmapCacheOption.OnLoad;
                bitmapImage.StreamSource = stream;
                bitmapImage.EndInit();
            }

            var config = new PrintConfig()
            {
                DataSource     = bitmapImage,
                DataSourceType = DataSourceTypeDefine.Image
            };

            var viewModel = new PrintPreviewViewModel(config);

            var view = new PrintPreviewView(viewModel);

            view.ShowDialog();
        }
        private void ShowPrintPreview()
        {
            // We have to clone the FlowDocument before we use different pagination settings for the export.
            RichTextDocument document = fileService.ActiveDocument as RichTextDocument;
            FlowDocument clone = document.CloneContent();
            clone.ColumnWidth = double.PositiveInfinity;

            // Create a package for the XPS document
            MemoryStream packageStream = new MemoryStream();
            package = Package.Open(packageStream, FileMode.Create, FileAccess.ReadWrite);

            // Create a XPS document with the path "pack://temp.xps"
            PackageStore.AddPackage(new Uri(PackagePath), package);
            xpsDocument = new XpsDocument(package, CompressionOption.SuperFast, PackagePath);

            // Serialize the XPS document
            XpsSerializationManager serializer = new XpsSerializationManager(new XpsPackagingPolicy(xpsDocument), false);
            DocumentPaginator paginator = ((IDocumentPaginatorSource)clone).DocumentPaginator;
            serializer.SaveAsXaml(paginator);

            // Get the fixed document sequence
            FixedDocumentSequence documentSequence = xpsDocument.GetFixedDocumentSequence();

            // Create and show the print preview view
            printPreviewViewModel = new PrintPreviewViewModel(
                container.GetExportedValue<IPrintPreviewView>(), shellService, documentSequence);
            printPreviewViewModel.CloseCommand = closePrintPreviewCommand;
            shellViewModel.ContentView = printPreviewViewModel.View;
        }