private static RadRichTextBox CreateRadRichTextBox(GridViewDataControl grid, PrintSettings settings) { return new RadRichTextBox { IsReadOnly = true, LayoutMode = DocumentLayoutMode.Paged, IsSelectionEnabled = false, IsSpellCheckingEnabled = false, Document = CreateDocument(grid, settings) }; }
public static void PrintPreview(this RadGridView grid, PrintSettings settings) { var rtb = CreateRadRichTextBox(grid, settings); var window = CreatePreviewWindow(rtb); window.ShowDialog(); }
private static RadDocument CreateDocument(GridViewDataControl grid, PrintSettings settings) { RadDocument document; using (var stream = new MemoryStream()) { EventHandler<GridViewElementExportingEventArgs> elementExporting = (s, e) => { switch (e.Element) { case ExportElement.Table: e.Attributes["border"] = "0"; break; case ExportElement.HeaderRow: e.Styles.Add("background-color", settings.HeaderBackground.ToString().Remove(1, 2)); break; case ExportElement.GroupHeaderRow: e.Styles.Add("background-color", settings.GroupHeaderBackground.ToString().Remove(1, 2)); break; case ExportElement.Row: e.Styles.Add("background-color", settings.RowBackground.ToString().Remove(1, 2)); break; } }; grid.ElementExporting += elementExporting; grid.Export(stream, new GridViewExportOptions { Format = Telerik.Windows.Controls.ExportFormat.Html, ShowColumnFooters = grid.ShowColumnFooters, ShowColumnHeaders = grid.ShowColumnHeaders, ShowGroupFooters = grid.ShowGroupFooters }); grid.ElementExporting -= elementExporting; stream.Position = 0; document = new HtmlFormatProvider().Import(stream); } return document; }
public static void Print(this RadGridView grid, PrintSettings settings) { var rtb = CreateRadRichTextBox(grid, settings); var window = new RadWindow { Height = 0, Width = 0, Opacity = 0, Content = rtb }; rtb.PrintCompleted += (s, e) => window.Close(); window.Show(); rtb.Print("MyDocument", Telerik.Windows.Documents.UI.PrintMode.Native); }