iOS AirPrint - 打印多个URL

时间:2012-04-11 08:25:52

标签: iphone ios uiwebview ios5.1 airprint

根据这篇文章的提问: Unable to display printer options with AirPrint

我遇到的问题很少:

1)其中一个答案是将Controller.printItem设置为URL。同样,我可以设置多个网址吗?基本上,我有一组我需要一次打印的URL。是否可以将controller.printitems设置为一个URL数组?另外,我知道controller.printItem采用类型'数据',那么如何将基于Web的图像URL转换为类型'数据'?

2)由于一些奇怪的原因,默认情况下,每次到达打印对话框时,双面都会设置为打开。我需要设置的变量是什么?如果我不能向用户显示选项,那就太好了。

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"类。