根据这篇文章的提问: Unable to display printer options with AirPrint
我遇到的问题很少:
1)其中一个答案是将Controller.printItem设置为URL。同样,我可以设置多个网址吗?基本上,我有一组我需要一次打印的URL。是否可以将controller.printitems设置为一个URL数组?另外,我知道controller.printItem采用类型'数据',那么如何将基于Web的图像URL转换为类型'数据'?
2)由于一些奇怪的原因,默认情况下,每次到达打印对话框时,双面都会设置为打开。我需要设置的变量是什么?如果我不能向用户显示选项,那就太好了。
答案 0 :(得分:0)
尝试此代码可能会对您有所帮助
- (IBAction)btnPrintTapped:(id)sender {
NSData *imageData = UIImagePNGRepresentation(self.imgV.image);
[self printItem:imageData];
}
#pragma mark - Printing
-(void)printItem :(NSData*)data {
printController = [UIPrintInteractionController sharedPrintController];
if(printController && [UIPrintInteractionController canPrintData:data]) {
printController.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [NSString stringWithFormat:@""];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
printController.printInfo = printInfo;
printController.showsPageRange = YES;
printController.printingItem = data;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
//NSLog(@"FAILED! due to error in domain %@ with error code %u", error.domain, error.code);
}
};
[printController presentFromBarButtonItem:self.item animated:YES completionHandler:completionHandler];
}
}
- (BOOL)presentFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion {
return YES;
}
- (BOOL)presentFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion {
return YES;
}
答案 1 :(得分:0)
我知道它很晚但如果有人需要这可能有帮助: 创建URL数组并将其分配给" printingItems" " UIPrintInteractionController"类。