Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS7更新-在UIWebView中加载的Airprinting PDF可将PDF缩放到信件页面大小的50%_Pdf_Uiwebview_Ios7_Airprint - Fatal编程技术网

iOS7更新-在UIWebView中加载的Airprinting PDF可将PDF缩放到信件页面大小的50%

iOS7更新-在UIWebView中加载的Airprinting PDF可将PDF缩放到信件页面大小的50%,pdf,uiwebview,ios7,airprint,Pdf,Uiwebview,Ios7,Airprint,我的应用程序的一部分涉及打印加载到UIWebView中的PDF 我用来在UIWebView中空运这些PDF的代码在iOS版本6中运行良好。自iOS7更新以来,我的页面仍使用我的应用程序上的相同代码打印,但存在以下几个问题: 每次打印都会打印额外的空白页。如果我的PDF文档有2页长,打印机将打印2页包含PDF内容的文档,另外第3页为空白。这对我来说并不重要,因为没有浪费墨水或纸张,但是对于我试图实现的解决方案来说,这有点草率 我要解释的主要问题是,在iOS7更新之后,在iOS6 iPad/iPh

我的应用程序的一部分涉及打印加载到UIWebView中的PDF

我用来在UIWebView中空运这些PDF的代码在iOS版本6中运行良好。自iOS7更新以来,我的页面仍使用我的应用程序上的相同代码打印,但存在以下几个问题:

  • 每次打印都会打印额外的空白页。如果我的PDF文档有2页长,打印机将打印2页包含PDF内容的文档,另外第3页为空白。这对我来说并不重要,因为没有浪费墨水或纸张,但是对于我试图实现的解决方案来说,这有点草率

  • 我要解释的主要问题是,在iOS7更新之后,在iOS6 iPad/iPhone设备上正常工作的代码现在被破坏了。代码允许我打印PDF的全部内容,但是内容被缩小到总纸张面积的50%(在我的情况下是一张肖像信大小的纸张)

尽管我在苹果的开发网站上发表了自己的观点,但我无法从他们的论坛成员那里得到任何回应

以下是我正在使用的代码:

-(void) printWebView:(UIWebView *)webView {
    UIPrintInfo *pi = [UIPrintInfo printInfo];
    pi.outputType = UIPrintInfoOutputGeneral;
    pi.jobName = webView.request.URL.absoluteString;
    pi.orientation = UIPrintInfoOrientationPortrait;
    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
    pic.printInfo = pi;
    pic.showsPageRange= NO;
    UIPrintPageRenderer *renderer = [[UIPrintPageRenderer alloc] init];
    webView.viewPrintFormatter.printPageRenderer.headerHeight = 30.0f;
    webView.viewPrintFormatter.printPageRenderer.footerHeight = 30.0f;
    webView.viewPrintFormatter.contentInsets = UIEdgeInsetsMake(0.0f, 30.0f, 0.0f, 30.0f);
    webView.viewPrintFormatter.startPage = 0;
    [renderer addPrintFormatter:webView.viewPrintFormatter startingAtPageAtIndex:0];
    pic.printPageRenderer = renderer;
    [pic presentAnimated:YES completionHandler:^(UIPrintInteractionController *pic2, BOOL completed, NSError *error) {
    // indicate done or error
}];
是否有其他人遇到过这个问题,是否有解决方案,或者这是苹果需要在下次更新中修复的合法问题


另外,虽然我觉得不太可能,但Xcode的非当前版本(1个旧版本)会导致问题吗?

我在iOS 7下也观察到了同样的问题。我能想到的唯一解决方案是将UIPrintInteractionController的printingItem设置为指向所需PDF的URL,或者将printingItem设置为PDF的NSData表示形式,而不是设置printFormatter属性。我在iOS 5下使用printingItem时遇到一些问题,所以我有一个后备解决方案,如下所示

// Work around for printing item not working with our document URL under iOS 5.
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))
{
    printController.printingItem = self.documentURL;
}
else
{
    printController.printFormatter = [self.webView viewPrintFormatter];
}