void IPrint.Print(byte[] content) { var data = NSData.FromArray(content); var uiimage = UIImage.LoadFromData(data); var printer = UIPrintInteractionController.SharedPrintController; if (printer == null) { Console.WriteLine("Unable to print at this time."); } else { var printInfo = UIPrintInfo.PrintInfo; printInfo.OutputType = UIPrintInfoOutputType.General; printInfo.JobName = "Print Job Name"; printer.PrintInfo = printInfo; printer.PrintingItem = uiimage; printer.ShowsPageRange = true; var handler = new UIPrintInteractionCompletionHandler((printInteractionController, completed, error) => { if (completed) { Console.WriteLine("Print Completed."); } else if (!completed && error != null) { Console.WriteLine("Error Printing."); } }); CGRect frame = new CGRect(); frame.Size = uiimage.Size; printer.Present(true, handler); } }
public static void Print(string url) { if (!UIPrintInteractionController.PrintingAvailable) { new UIAlertView(TouchFactory.Instance.GetResourceString("PrintErrorTitle"), TouchFactory.Instance.GetResourceString("PrintError"), null, TouchFactory.Instance.GetResourceString("Dismiss"), null).Show(); return; } string printUrl = null; int index = url.IndexOf('?'); if (index >= 0) { HttpUtility.ParseQueryString(url.Substring(index)).TryGetValue("url", out printUrl); } UIPrintInfo printInfo = UIPrintInfo.PrintInfo; printInfo.OutputType = UIPrintInfoOutputType.General; printInfo.Duplex = UIPrintInfoDuplex.LongEdge; if (!string.IsNullOrEmpty(printUrl) && !PrintUrl(printUrl)) { new UIAlertView(TouchFactory.Instance.GetResourceString("PrintErrorTitle"), string.Format(TouchFactory.Instance.GetResourceString("PrintUrlError"), printUrl), null, TouchFactory.Instance.GetResourceString("Dismiss"), null).Show(); return; } var navContext = iApp.CurrentNavContext.ActiveLayer.NavContext; var stack = PaneManager.Instance.FromNavContext(navContext.NavigatedActivePane, navContext.NavigatedActiveTab) as BaseNavigationController; if (stack == null || stack.CurrentView == null) { return; } UIViewController controller = TouchFactory.GetNativeObject <UIViewController>(stack.CurrentView, "view"); UIView view = controller.View; if (controller is IBrowserView) { view = view.Subviews.FirstOrDefault(sv => sv is UIWebView); } if (!(view is UIWebView) || !PrintUrl(((UIWebView)view).Request.Url.AbsoluteString)) { printInfo.JobName = controller.NavigationItem.Title; UIPrintInteractionController.SharedPrintController.PrintInfo = printInfo; view.ViewPrintFormatter.StartPage = 0; UIPrintInteractionController.SharedPrintController.PrintFormatter = view.ViewPrintFormatter; } UIPrintInteractionCompletionHandler completionHandler = FinishPrinting; if (TouchFactory.Instance.LargeFormFactor) { UIViewController top = ModalManager.GetTopmostViewController(null); nfloat barHeight = TouchFactory.Instance.IsLandscape ? UIApplication.SharedApplication.StatusBarFrame.Width : UIApplication.SharedApplication.StatusBarFrame.Height; nfloat centerX = TouchFactory.Instance.IsLandscape ? top.View.Center.Y : top.View.Center.X; UIPrintInteractionController.SharedPrintController.PresentFromRectInView( new CoreGraphics.CGRect(centerX, stack.NavigationBar.Frame.Height + barHeight, 1, 1), top.View, true, completionHandler); } else { UIPrintInteractionController.SharedPrintController.Present(true, completionHandler); } }
public virtual bool PresentFromBarButtonItem(UIBarButtonItem item, bool animated, [Optional] UIPrintInteractionCompletionHandler completionHandler) { return(default(bool)); }
public virtual bool PresentAnimated(bool animated, [Optional] UIPrintInteractionCompletionHandler completionHandler) { return(default(bool)); }
public virtual bool PrintToPrinter(UIPrinter printer, [Optional] UIPrintInteractionCompletionHandler completionHandler) { return(default(bool)); }
public virtual bool PresentFromRect(CGRect rect, UIView inView, bool animated, [Optional] UIPrintInteractionCompletionHandler completionHandler) { return(default(bool)); }