Неправильный размер бумаги в AirPrint

В моем приложении можно распечатать фотографии разных размеров. Это работает нормально, но с iOS 8 размер бумаги всегда Letter / A4, даже если отображается диалоговое окно печати, например, 5 "x7". Если пользователь снова выбирает размер бумаги, размер бумаги изменяется, например, на 5 "x7".

Есть ли у кого-нибудь такая же проблема?

Есть ли обходной путь?

Вот код:

 - (UIPrintPaper *)printInteractionController:(UIPrintInteractionController *)printInteractionController choosePaper:(NSArray *)paperList

 {
    CGSize PageSize = ((PPPage *)[document.pages objectAtIndex:0]).paperSize;

    if (PageSize.width > PageSize.height) {
        float w = PageSize.width;
        PageSize.width = PageSize.height;
        PageSize.height = w;
    }
    NSLog(@"printInteractionController:choosePaper: Needed Pagesize = (%.1f,%.1f)",PageSize.width,PageSize.height);
    UIPrintPaper *retPaper = [UIPrintPaper bestPaperForPageSize:PageSize withPapersFromArray:paperList];
    NSLog(@"printInteractionController:choosePaper: chosen UIPrintPaper = (%.1f,%.1f)",retPaper.paperSize.width,retPaper.paperSize.height);

    return retPaper;
}

И вывод журнала:

2015-06-19 12: 22: 53.474 PhotoPrint [5955: 1225053] printInteractionController: choosePaper: Needed Pagesize = (288.0,432.0) 2015-06-19 12: 22: 54.118 PhotoPrint [5955: 1225053] printInteractionController: choosePaper: selected UIPrintPaper = (612.0,792.0) 2015-06-19 12: 22: 54.118 PhotoPrint [5955: 1225053] - [PKPaperList matchedPaper: seekBorderless: withDuplexMode: didMatch:] paperToMatch = result = matchType = 0 19.06.2015 12:23: 06.351 PhotoPrint [5955: 1225053]

-> выбрана буква неправильного размера бумаги!


Теперь снова выберите бумагу:

printInteractionController: choosePaper: Needed Pagesize = (288.0,432.0) 2015-06-19 12: 23: 14.860 PhotoPrint [5955: 1225053] printInteractionController: choosePaper: selected UIPrintPaper = (360.0,504.0) 2015-06-19 12:23: 14.860 PhotoPrint [5955: 1225053] - [PKPaperList matchedPaper: seekBorderless: withDuplexMode: didMatch:] paperToMatch = result = matchType = 0

-> на этот раз правильный размер бумаги.


person palugu    schedule 19.06.2015    source источник
comment
Первоначальный вопрос касался печати с помощью AirPrint. Я думаю, что название может сбивать с толку после редактирования, поэтому я пытаюсь перефразировать свой вопрос: как выбрать определенный размер бумаги при печати с помощью AirPrint на iOS?   -  person palugu    schedule 29.06.2015
comment
Если название теперь сбивает с толку: почему бы просто не изменить его, чтобы оно не сбивало с толку?!?!   -  person Kurt Pfeifle    schedule 04.07.2016


Ответы (1)


Кажется, что ваш код меняет местами ширину и высоту - похоже, вы пытаетесь изменить ориентацию печати. Это не способ сделать это: чтобы установить ориентацию, см. UIPrintInfo.orientation

Что касается того, почему вы иногда получаете разные результаты, я не уверен, но я предполагаю, что на размер bestPaperForPage может влиять автономное / онлайн-состояние выбранного принтера (т. Е. Если вы вызываете bestPaperForPage до того, как с принтером когда-либо связались, по умолчанию он будет A4, если вы не выбрали тип печати Photo). Если вы хотите, чтобы по умолчанию было 4x6, используйте UIPrintInfoOutputPhoto на своем UIPrintInfo

person xaphod    schedule 30.07.2016