Сбой задания печати iPhone 4.2 airprint

#xamarin.ios #iphone-4 #airprint

#xamarin.ios #iphone-4 #airprint

Вопрос:

Независимо от того, какой принтер я выбираю, я получаю сообщение «Сбой задания печати: неподдерживаемый формат документа «приложение / pdf«.

Я пытаюсь печатать только на принтерах HP.

Я не вижу места в коде для изменения типа вывода.

Я использую UISimpleTextFormatter для форматирования строки.

Не уверен, как обойти это.

Редактировать: Приведенный ниже код взят прямо из примера Мигеля. с той лишь разницей, что я опробовал markupformatter, чтобы посмотреть, выводится ли он в формате, отличном от application / pdf.

В диалоговом окне печати отображается список принтеров HP, я выбираю принтер, но ничего не печатается, и в режиме отладки регистрируется ошибка, указанная вверху.

Кроме uiprintinfoooutputtype.В целом, я также пробовал uiprintinfoooutputtype.оттенки серого, но с тем же эффектом.

 public partial class AppDelegate : UIApplicationDelegate
    {
        public override bool FinishedLaunching (UIApplication app, NSDictionary options)
        {
            window.MakeKeyAndVisible ();
            var button = UIButton.FromType (UIButtonType.RoundedRect);
            button.Frame = new RectangleF (100, 100, 120, 60);
            button.SetTitle ("Print", UIControlState.Normal);
            button.TouchDown  = delegate {
                Print ();
            };
            window.AddSubview (button);
            return true;
        }

        void Print ()
        {
            var printInfo = UIPrintInfo.PrintInfo;
            printInfo.JobName = "Test :";
            printInfo.OutputType = UIPrintInfoOutputType.General;
            printInfo.JobName = "Test: My first Print Job";

            /*
            var textFormatter = new UISimpleTextPrintFormatter ("Once upon a time...") {
                StartPage = 0,
                ContentInsets = new UIEdgeInsets (72, 72, 72, 72),
                MaximumContentWidth = 6 * 72,               
            };
            */
            var htmlFormatter = new UIMarkupTextPrintFormatter("<html><body>Test : Hi There!!</body></html>");
            htmlFormatter.StartPage = 0;
            htmlFormatter.ContentInsets = new UIEdgeInsets (72, 72, 72, 72); // 1 inch margins
            htmlFormatter.MaximumContentWidth = 6 * 72;                 

            var printer = UIPrintInteractionController.SharedPrintController;
            printer.PrintInfo = printInfo;
            printer.PrintFormatter = htmlFormatter;
            printer.ShowsPageRange = true;
            printer.Present (true, (handler, completed, err) => {
                if (!completed amp;amp; err != null){
                    Console.WriteLine ("error");
                }
            });
        }

        public override void OnActivated (UIApplication application)
        {
        }
    }
  

Комментарии:

1. Не могли бы вы опубликовать какой-нибудь пример кода, пожалуйста?

Ответ №1:

Я ожидал, что в диалоговом окне печати появятся только принтеры с поддержкой air print. Но он также подходит для принтеров HP, не поддерживающих airprint. Это заставляет меня думать, что он мог печатать на этих принтерах и что у них включена функция air print.

Но это было не так.