После обновления моего ipad до ios 13.2.1 команда AirPrint
вызывает сбой моего приложения xamarin ios с собственным необработанным исключением. Другие приложения, такие как Notes, могут работать с AirPrint без проблем. Однако, поскольку AirPrint имеет различные способы реализации, возможно, он должен что-то делать с UIMarkupTextPrintFormatter
, который я и использую. Ниже приведен фрагмент моей реализации
var printer = UIKit.UIPrintInteractionController.SharedPrintController;
ESAirPrintRenderer pageRenderer = new ESAirPrintRenderer (Subject, Logo, NumberOfCopies, HeaderHeight);
UIMarkupTextPrintFormatter formatter = new UIMarkupTextPrintFormatter (HtmlContext);
formatter.PerPageContentInsets = new UIEdgeInsets (10, 0, 10, 0);
pageRenderer.AddPrintFormatter (formatter, 0);
var printInfo = UIKit.UIPrintInfo.PrintInfo;
printInfo.OutputType = UIKit.UIPrintInfoOutputType.General;
printInfo.Duplex = UIPrintInfoDuplex.None;
printInfo.Orientation = UIPrintInfoOrientation.Portrait;
printInfo.JobName = Guid.NewGuid().ToString();
printer.PrintPageRenderer = pageRenderer;
printer.PrintInfo = printInfo;
printer.ShowsPageRange = false;
printer.ShowsNumberOfCopies = false;
printer.ShowsPaperSelectionForLoadedPapers = false;
var handler = new UIKit.UIPrintInteractionCompletionHandler ((printInteractionController, completed, error) => {
System.Threading.Tasks.Task.Factory.StartNew(() => {
if (completed) {
//completed
} else if (!completed && error != null) {
Alert.Error (error.ToString ());
}
});
});
printer.Present (true, handler);