1

この投稿からの質問に続いて: Unable to display printer options with AirPrint

私が持っていたいくつかの質問がありました:

1) 答えの 1 つは、Controller.printItem を URL に設定することでした。同様に、複数の URL を設定できますか? 基本的に、一度に印刷する必要がある一連の URL があります。controller.printitems を URL の配列に設定することは可能ですか? また、controller.printItem が 'data' 型を取ることを知っているので、Web ベースの画像 URL を 'data' 型に変換するにはどうすればよいですか?

2)奇妙な理由で、デフォルトでは、印刷ダイアログに到達するたびに両面がオンに設定されています。それをオフにするために必要な変数は何ですか? ユーザーにオプションを表示できなかったら素晴らしいことです。

4

2 に答える 2

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;
}
于 2012-04-11T11:14:26.107 に答える