public void Print(NSObject sender) { try { var printInfo = new NSPrintInfo { Orientation = NSPrintingOrientation.Landscape, LeftMargin = 45, RightMargin = 30, TopMargin = 30, BottomMargin = 30, HorizontalPagination = NSPrintingPaginationMode.Fit, VerticallyCentered = false, HorizontallyCentered = false }; var printOperation = NSPrintOperation.FromView(_statusTextView, 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}"); } }
// NOTE: I needed to add this method and export it as an action in order to hook up the // Print... menu to the FirstResponder printDocument: method which has to be called bu the OS // and will trigger the call to PrintOperation(NSDictionary printSettings, out NSError outError) // However, once I added this method and made the connection, I no longer need this here, // so it was just needed to be able to set the target/ action pair for the Print... menu. // [Action("printDocument:")] // public override void PrintDocument(NSObject sender) // { // //base.PrintDocument(sender); // } public override NSPrintOperation PrintOperation(NSDictionary printSettings, out NSError outError) { outError = new NSError(); PeopleView view = new PeopleView(NSArray.FromObjects(Employees.ToArray())); NSPrintInfo printInfo = this.PrintInfo; NSPrintOperation printOp = NSPrintOperation.FromView(view, printInfo); return(printOp); }
public void Print(PrintSettings settings) { var op = NSPrintOperation.FromView(EventControl); if (settings != null) { op.PrintInfo = ((PrintSettingsHandler)settings.Handler).Control; } op.ShowsPrintPanel = false; op.RunOperation(); }
public void PrintPDF(NSUrl fileUrl) { // Create the print settings. ContentWebView.MainFrame.FrameView.PrintDocumentView(); //printOperationWithPrintInfo: printInfo] NSPrintInfo sharePrintInfo = NSPrintInfo.SharedPrintInfo; var sharedDict = sharePrintInfo.Dictionary; NSMutableDictionary printInfoDict = NSMutableDictionary.FromDictionary(sharedDict); printInfoDict.Add(NSObject.FromObject("NSPrintHeaderAndFooter"), NSObject.FromObject(true)); printInfoDict.Add(NSObject.FromObject("NSPrintJobDisposition"), NSObject.FromObject("NSPrintSpoolJob")); // NSPrintSaveJob var printInfo = new NSPrintInfo(printInfoDict); printInfo.TopMargin = 72.0f; printInfo.BottomMargin = 72.0f; printInfo.LeftMargin = 0.0f; printInfo.RightMargin = 0.0f; printInfo.HorizontalPagination = NSPrintingPaginationMode.Fit; printInfo.VerticalPagination = NSPrintingPaginationMode.Auto; printInfo.HorizontallyCentered = true; printInfo.VerticallyCentered = false; printInfo.ScalingFactor = 0.5f; var rect = printInfo.ImageablePageBounds; // Create the document reference. var pdfData = ContentWebView.MainFrame.FrameView.DocumentView.DataWithPdfInsideRect( ContentWebView.MainFrame.FrameView.DocumentView.Frame); PdfDocument pdfDocument = new PdfDocument(pdfData); PdfView pdfView = new PdfView(); pdfView.SetFrameSize(ContentWebView.MainFrame.FrameView.Frame.Size); pdfView.SetFrameOrigin(new CGPoint(0, 0)); pdfView.Document = pdfDocument; var op = NSPrintOperation.FromView(pdfView.DocumentView, printInfo); op.ShowsProgressPanel = true; op.ShowsPrintPanel = true; op.RunOperation(); //op.RunOperationModal(View.Window,null); }
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}"); } }
public void Print(NSObject sender) { try { var printInfo = new NSPrintInfo { Orientation = NSPrintingOrientation.Landscape, LeftMargin = 45, RightMargin = 30, TopMargin = 30, BottomMargin = 30, HorizontalPagination = NSPrintingPaginationMode.Auto, VerticallyCentered = false, HorizontallyCentered = false }; var printView = new NSView { AutoresizesSubviews = true }; var indPrintVC = new TablePrintingViewController(_individualsViewController); var famPrintVC = new TablePrintingViewController(_familiesViewController); indPrintVC.View.SetFrameOrigin(new CoreGraphics.CGPoint(0, famPrintVC.TotalHeight)); printView.AddSubview(indPrintVC.View); printView.AddSubview(famPrintVC.View); var width = Math.Max(indPrintVC.TotalWidth, famPrintVC.TotalWidth); var height = indPrintVC.TotalHeight + famPrintVC.TotalHeight; printView.SetFrameSize(new CoreGraphics.CGSize(width, height)); var printOperation = NSPrintOperation.FromView(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}"); } }
public bool Print(bool showPanel, Window parent, NSPrintPanel panel) { var op = NSPrintOperation.FromView(Control); if (printSettings != null) { op.PrintInfo = printSettings.ToNS(); } if (panel != null) { op.PrintPanel = panel; } op.ShowsPrintPanel = showPanel; if (parent != null) { var parentHandler = (IMacWindow)parent.Handler; var closeSheet = new SheetHelper(); op.RunOperationModal(parentHandler.Control, closeSheet, new Selector("printOperationDidRun:success:contextInfo:"), IntPtr.Zero); NSApplication.SharedApplication.RunModalForWindow(parentHandler.Control); return(closeSheet.Success); } return(op.RunOperation()); }