示例#1
0
        // advanced printing
        void _btnAdvancedPrint_Click(object sender, RoutedEventArgs e)
        {
            // get margins, scale mode
            var margin =
                _cmbMargins.SelectedIndex == 0 ? 96.0 / 4 :
                _cmbMargins.SelectedIndex == 1 ? 96.0 / 2 :
                96.0;
            var scaleMode =
                _cmbZoom.SelectedIndex == 0 ? ScaleMode.ActualSize :
                _cmbZoom.SelectedIndex == 1 ? ScaleMode.PageWidth :
                ScaleMode.SinglePage;

            var pd = new PrintDialog();

            if (_cmbOrientation.SelectedIndex > 0)
            {
                // setup PrintDialog parameters according to user selection
                pd.PrintQueue  = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
                pd.PrintTicket = pd.PrintQueue.DefaultPrintTicket;
                pd.PrintTicket.PageOrientation = _cmbOrientation.SelectedIndex == 1 ?
                                                 System.Printing.PageOrientation.Portrait : System.Printing.PageOrientation.Landscape;
            }

            bool showPrintDialog = _chkShowPrintDialog.IsChecked.Value;

            if (!showPrintDialog || pd.ShowDialog().Value)
            {
                // calculate page size
                var sz = new Size(pd.PrintableAreaWidth, pd.PrintableAreaHeight);

                // create paginator
                var paginator = new FlexPaginator(_flex, scaleMode, sz, new Thickness(margin), 100);
                pd.PrintDocument(paginator, "C1FlexGrid printing example");
            }
        }
示例#2
0
        // advanced printing
        void _btnAdvancedPrint_Click(object sender, RoutedEventArgs e)
        {
            var pd = new PrintDialog();
            if (pd.ShowDialog().Value)
            {
                // get margins, scale mode
                var margin =
                    _cmbMargins.SelectedIndex == 0 ? 96.0 / 4 :
                    _cmbMargins.SelectedIndex == 1 ? 96.0 / 2 :
                    96.0;
                var scaleMode =
                    _cmbZoom.SelectedIndex == 0 ? ScaleMode.ActualSize :
                    _cmbZoom.SelectedIndex == 1 ? ScaleMode.PageWidth :
                    ScaleMode.SinglePage;

                // calculate page size
                var sz = new Size(pd.PrintableAreaWidth, pd.PrintableAreaHeight);

                // create paginator
                var paginator = new FlexPaginator(_flex, scaleMode, sz, new Thickness(margin), 100);
                pd.PrintDocument(paginator, "C1FlexGrid printing example");
            }
        }
示例#3
0
 private void PrintInternal(PrintParameters pp)
 {
     _docName = pp._docName;
     _scaleMode = pp._scaleMode;
     _margin = pp._margin;
     _maxPages = pp._maxPages;
     _pages = null;
     PrintDialog printDialog = new PrintDialog();
     if (printDialog.ShowDialog().Value)
     {
         Size printSize = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);
         Size pageSize = new Size(printSize.Width - (_margin.Left + _margin.Right), printSize.Height - (_margin.Top + _margin.Bottom));
         _pages = GetPageImages(_scaleMode, pageSize, _maxPages);
         if (_pages != null && _pages.Count > 0)
         {
             FlexPaginator flexPaginator = new FlexPaginator(this, printSize, _pages);
             printDialog.PrintDocument(flexPaginator, pp._docName);
         }
     }
 }