示例#1
0
        public static DocumentPaginator GetDocumentPaginator(PrintConfig config)
        {
            switch (config.DataSourceType)
            {
            case DataSourceTypeDefine.DataTable:
                return(new DataTableDocumentPaginator(config));

            case DataSourceTypeDefine.Image:
                return(new ImageDocumentPaginator(config));

            case DataSourceTypeDefine.Control:
                return(new ImageDocumentPaginator(config));

            default:
                return(null);
            }
        }
示例#2
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();
        }