// 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"); } }
// 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"); } }
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); } } }