UIPrintInteractionController printItems не отображаются / работают

Довольно просто...

Я считаю себя довольно опытным разработчиком iOS в эти дни, но этот выглядит как явная ошибка в iOS, если я что-то не пропустил.

Пожалуйста, смотрите код ниже.

Пути к файлам указывают на два одностраничных PDF-файла.

То, что обнаруживается, является Контроллером взаимодействия Печати без содержания для печати.

Если бы я вместо этого делал только 1 файл за один раз, как это:

pc.printingItem = [NSURL fileURLWithPath:filePath1];

это работает как чемпион.

Что мне здесь не хватает?!

UIPrintInteractionController *pc = [UIPrintInteractionController sharedPrintController];
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputPhoto;
printInfo.orientation = UIPrintInfoOrientationLandscape;
pc.printInfo = printInfo;

pc.printingItems = @[[NSURL fileURLWithPath:filePath1], 
                     [NSURL fileURLWithPath:filePath2]];

[pc presentAnimated:YES completionHandler:completionHandler];

1 ответ

У меня была такая же проблема, и я решил ее, установив printingItemсвойство с необработанными данными моего файла PDF.

      // Here is a class I created that works with `UIActivityViewController`,
// feel free to tweak to your needs.

final class CustomActivityViewController: UIActivityViewController {

    init(with filePath: URL, and fileData: Data?) {
        super.init(activityItems: [filePath], applicationActivities: [])
    
        completionWithItemsHandler = { activity, complete, items, error in
        
            if activity == .print {
            
                let printInfo = UIPrintInfo(dictionary: nil)
                printInfo.jobName = filePath.lastPathComponent
                printInfo.outputType = .general
            
                let printer = UIPrintInteractionController.shared
                printer.printingItem = fileData // <-- This is the cure.
                printer.printInfo = printInfo
            
                printer.present(animated: true, completionHandler: nil)
            }
        }
    }
}
Другие вопросы по тегам