首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AirPrint的Objective-C代码

AirPrint的Objective-C代码
EN

Stack Overflow用户
提问于 2011-04-17 09:50:13
回答 2查看 14.6K关注 0票数 14

如何在objective-c中用IBAction方法用AirPrint打印UITextView?

EN

回答 2

Stack Overflow用户

发布于 2011-04-17 09:59:47

检查是否可以打印:

代码语言:javascript
复制
if ([UIPrintInteractionController isPrintingAvailable])
{
    // Available
} else {
    // Not Available
}

单击按钮后打印:

代码语言:javascript
复制
-(IBAction) buttonClicked: (id) sender;
{
    NSMutableString *printBody = [NSMutableString stringWithFormat:@"%@, %@",self.encoded.text, self.decoded.text];
    [printBody appendFormat:@"\n\n\n\nPrinted From *myapp*"];

     UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
     pic.delegate = self;

     UIPrintInfo *printInfo = [UIPrintInfo printInfo];
     printInfo.outputType = UIPrintInfoOutputGeneral;
     printInfo.jobName = self.titleLabel.text;
     pic.printInfo = printInfo;

     UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc] initWithText:printBody];
     textFormatter.startPage = 0;
     textFormatter.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
     textFormatter.maximumContentWidth = 6 * 72.0;
     pic.printFormatter = textFormatter;
     [textFormatter release];
     pic.showsPageRange = YES;

     void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
     ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
     if (!completed && error) {
     NSLog(@"Printing could not complete because of error: %@", error);
     }
     };

    [pic presentFromBarButtonItem:self.rightButton animated:YES completionHandler:completionHandler];

}

最初由'87vert‘在iPhone Dev SDK上发布:Airprint Tutorial - Simple Print File

票数 24
EN

Stack Overflow用户

发布于 2012-08-21 18:13:44

下面的方法使用要打印的文件的名称以及您希望显示airprint弹出窗口的条形钮代码。它对我很有效,我相信它会对我有所帮助。

代码语言:javascript
复制
-(void)printJob:(int)jobType:(NSString*)jobName:(UIBarButtonItem *)barButton{

NSString *path;
if ([jobName isEqualToString:@"Printout.png"]) {
    path= [self documentsPathForFileName:@"Printout.png"];
}

NSData *mydata=[NSData dataWithContentsOfFile:path];
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [path lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
pic.printInfo = printInfo;
pic.showsPageRange = YES;
pic.printingItem = mydata;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
    if (!completed && error) {
        NSLog(@"Printing could not complete because of error: %@", error);
    }
};

[pic presentFromBarButtonItem:barButton animated:YES completionHandler:completionHandler];

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5690931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档