我正在尝试使用UIPrintPageRenderer drawPageAtIndex: inRect:将四个webViews转换成一个pdf。但是,在iOS 8.1.1中,它在到达此点时挂起。这里没有错误消息,如果我继续下去,代码就会继续中断。有没有其他人看到这个问题,并找到解决这个问题的方法?
当我在渲染器上设置paperRect和printableRect时,它会导致挂起。如果我忽略了这些行,应用程序不会挂起,但最终得到的pdf是空白的。
以下是代码(更新):
int i = 0;
UIPrintPageRenderer *renderer = [[UIPrintPageRenderer alloc] init];
for(UIWebView *webView in webViews) {
[renderer addPrintFormatter:webView.viewPrintFormatter startingAtPageAtIndex:i++];
}
CGRect paperRect = CGRectMake(0, 0, 612, 792);
CGRect printableRect = CGRectInset(paperRect, 20, 20);
[renderer setValue:[NSValue valueWithCGRect:paperRect] forKey:@"paperRect"];
[renderer setValue:[NSValue valueWithCGRect:printableRect] forKey:@"printableRect"];
NSMutableData *pdfData = [NSMutableData data];
// Render the html into a PDF
UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );
for (NSInteger i=0; i < [renderer numberOfPages]; i++)
{
UIGraphicsBeginPDFPage();
CGRect bounds = UIGraphicsGetPDFContextBounds();
[renderer drawPageAtIndex:i inRect:bounds]; <-- Hangs here
}
UIGraphicsEndPDFContext();发布于 2014-12-05 22:40:35
我给其他可能遇到这个问题的人发这个帖子。出现此挂起是因为Xcode中启用了异常断点,并且出现了异常。异常显然发生在UIPrintPageRenderer drawPageAtIndex: inRect:的实现中。您可以忽略此异常,代码将按预期继续运行。
https://stackoverflow.com/questions/27257600
复制相似问题