iPhone 版 AirPrint 应用程序

Posted

技术标签:

【中文标题】iPhone 版 AirPrint 应用程序【英文标题】:AirPrint for iPhone App 【发布时间】:2011-06-08 11:14:53 【问题描述】:

我正在尝试在我的应用程序中实现 AirPrint。目前,我的代码是这样的:

AirPrintingViewController.h

#import <UIKit/UIKit.h>

@interface AirPrintingViewController : UIViewController <UIPrintInteractionControllerDelegate>



-(void)printItem;

@end

AirPrintingViewController.m

#import "AirPrintingViewController.h"

@implementation AirPrintingViewController

-(void)printItem 

NSString *path = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"png"];
NSData *dataFromPath = [NSData dataWithContentsOfFile:path];

UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];

if(printController && [UIPrintInteractionController canPrintData:dataFromPath]) 

    printController.delegate = self;

    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName = [path lastPathComponent];
    printInfo.duplex = UIPrintInfoDuplexLongEdge;
    printController.printInfo = printInfo;
    printController.showsPageRange = YES;
    printController.printingItem = dataFromPath;

    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 presentAnimated:YES completionHandler:completionHandler];




- (void)viewDidLoad 
    [super viewDidLoad];
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn addTarget:self action:@selector(printItem) forControlEvents:UIControlEventTouchDown];
    [btn setTitle:@"PRINT" forState:UIControlStateNormal];
    btn.frame = CGRectMake(0, 100, 320, 50);
    [self.view addSubview:btn];


@end

当我运行应用程序时,我按下按钮,它会将我带到一个打印页面。当我启用打印机模拟器然后按打印时,没有任何反应......

我尝试通过我的 iPhone 向打印机模拟器进行空气打印,并且成功了。

我做错了吗?

谢谢。

【问题讨论】:

【参考方案1】:

你确定找到图片了吗?

尝试记录路径和 dataFromPath。

NSLog(@"path = %@", path);
NSLog(@"dataFromPath = %@", dataFromPath);

【讨论】:

给出正确答案,这不是答案

以上是关于iPhone 版 AirPrint 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 AirPrint 显示打印机选项

iOS AirPrint-设置默认打印机

iOS Airprint 自动打印而不选择打印机

我们可以在iTunes商店单独提交iPhone和iPad版应用程序吗?

如何关闭 AirPrint Popover?

应用程序突然崩溃 - iPhone企业版