我将UIWebView的图层渲染到图形上下文中,然后使用UIGraphicsBeginPDFPageWithInfo()函数系列将其包含在PDF中。
我的问题是输出包含一组额外的灰线,这些灰线不属于我的数据集。我希望有人可以了解他们来自哪里。
下面列出了输出的一个例子。正在呈现的HTML文档只包含文本“这是测试” - 您看到的框来自某处的渲染过程。在屏幕上呈现时,它只是白色屏幕上的黑色文字 - 没有线条/框。
任何人都有任何想法发生了什么?谢谢!
以下是我用来将此网页视图呈现为PDF的代码:
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil);
CGRect viewBounds = webView.bounds;
UIGraphicsBeginPDFPageWithInfo(viewBounds, nil);
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
[webView.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();
此外,这是我看到的输出截图:
答案 0 :(得分:0)
我遇到了同样的问题。只要尝试将UIWebView呈现到PDF上下文中,就会发生这种情况,并且帧宽度> 512.我无法诊断确切的问题,但通过将UIWebView渲染为UIImage,然后将UIImage渲染到pdf上下文来解决它。
代码为:
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0,0,kWidth,kHeight),nil);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
UIImage* image = nil;
UIGraphicsPushContext(currentContext);
UIGraphicsBeginImageContext(self.webview.frame.size);
{
[self.webview.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
UIGraphicsPopContext();
[image drawInRect:CGRectMake(0, 0, kWidth, kHeight)];