iOS 4.2 - 使用Apple AirPrint打印DOC,PPT,XLS等?

时间:2010-12-16 16:47:33

标签: iphone ios uiwebview airprint

我一直在玩iOS 4.2 UIWebView + AirPrint。然而,问题是从UIWebView获取viewPrintFormatter我能够打印PDF和图像,但不能打印DOC,DOCX,PPT,PPTX等。这些文件在UIWebView中正确显示,但Airprint将打印空白页面

这是我的代码:

  [internalWebView loadData:[[printContent objectAtIndex:0] data] MIMEType:mimeType textEncodingName:nil baseURL:nil];

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

UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [[printContent objectAtIndex:0] fileName];
pic.printInfo = printInfo;

pic.printFormatter = [internalWebView viewPrintFormatter];
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 presentAnimated:YES completionHandler:completionHandler];

2 个答案:

答案 0 :(得分:1)

我找到了如何修复它,出于某种原因,如果我不使用mime类型它可以工作。我刚刚将文件保存到本地存储,并使用了另一种加载方法,用于仅基于URL加载内容的webview。希望它有所帮助...

答案 1 :(得分:1)

谢谢,我按照你的提示进行操作。改为使用loadRequest:

[internalWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];