public TablePrintingViewController(IPrintViewController tableViewController) { Title = tableViewController.Title; _columnWidths = tableViewController.ColumnWidths(); _columnVisibility = tableViewController.ColumnVisibility(); _classType = tableViewController.GetGenericType(); View = SetupView(); _printView.Source = tableViewController.TableSource; _printView.SortDescriptors = tableViewController.SortDescriptors; _printView.ReloadData(); View.SetFrameSize(new CGSize(_printView.Frame.Width, _printView.Frame.Height + _printView.HeaderView.Frame.Height)); }
public void PrintDocument(IPrintViewController tableViewController) { try { var printingViewController = new TablePrintingViewController(tableViewController); var printOperation = NSPrintOperation.FromView(printingViewController.PrintView, PrintInfo); printOperation.ShowsPrintPanel = true; printOperation.ShowsProgressPanel = true; printOperation.CanSpawnSeparateThread = true; printOperation.PrintPanel.Options = NSPrintPanelOptions.ShowsCopies | NSPrintPanelOptions.ShowsPageRange | NSPrintPanelOptions.ShowsPreview | NSPrintPanelOptions.ShowsPageSetupAccessory | NSPrintPanelOptions.ShowsScaling; printOperation.RunOperation(); printOperation.CleanUpOperation(); } catch (Exception e) { UIHelpers.ShowMessage($"Sorry there was a problem printing.\nError was: {e.Message}"); } }