2014-11-04 169 views
1

我想直接将PDF文件(iOS 8.1,AirPrint,Swift)打印到打印机。印刷是优良的,但我得到在Xcode这样一条消息:AirPrint:直接将PDF文件打印到打印机

2014年11月4日12:34:50.069 PrintApp [801:266564] - [PKPaperList matchedPaper:preferBorderless:withDuplexMode:didMatch:] paperToMatch =结果= matchType = 0

这是什么意思?

这是我的代码:

let url: NSURL = NSURL(string:"http://www.sirup-shop.de/csv/test-paketlabel.pdf")! 

let printInfo = UIPrintInfo(dictionary: nil) 
printInfo.jobName = "Label" 

let printController = UIPrintInteractionController.sharedPrintController()! 
printController.printingItem = url 
printController.printInfo = printInfo 
printController.delegate = self 
printController.printToPrinter(self.printer!, completionHandler: { 
    (controller:UIPrintInteractionController!, completed:Bool, error:NSError!) -> Void in 
    println("Label finished.") 
}) 

非常感谢您的帮助。

+0

您可能需要采取对答案一看:http://stackoverflow.com/a/24966715/1214122 – holex 2014-11-04 12:03:05

+0

@holex:是的,我看到了这个答案。问题在于他有一个printFormatter _和_一个printingItem。问题只通过提供printFormatter来解决。但我只有printingItem。 – Michael 2014-11-04 12:20:01

回答

0

我在分享Objective-C Code,你可以把它当作参考。

UIPrintInteractionController *pc = [UIPrintInteractionController 
            sharedPrintController]; 
UIPrintInfo *printInfo = [UIPrintInfo printInfo]; 
printInfo.outputType = UIPrintInfoOutputGeneral; 
printInfo.orientation = UIPrintInfoOrientationPortrait; 
printInfo.jobName [email protected]"Report"; 

pc.printInfo = printInfo; 
pc.showsPageRange = YES; 
pc.printingItem = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://test.com/Print_for_Client_Name.pdf"]]; 


UIPrintInteractionCompletionHandler completionHandler = 
^(UIPrintInteractionController *printController, BOOL completed, 
    NSError *error) { 
    if(!completed && error){ 
     NSLog(@"Print failed - domain: %@ error code %ld", error.domain, 
       (long)error.code); 
    } 
}; 


[pc presentFromRect:CGRectMake(0, 0, 300, 300) inView:self.view animated:YES completionHandler:completionHandler];