我在Objective C中创建了一个pdf,我创建了pdf,一切正常。我有NSString
包含HTML
代码我想从此创建UIWebView
,然后从UIImage
创建UIWebView
,最后添加{ {1}}我正在创建的PDF文件。
这是我到目前为止所做的:
UIImage
唯一显示的是白色块..如果我预览// inside create pdf method.
UIWebView *tempDescWV = [[UIWebView alloc] init];
NSString *updatedDescHTML = [NSString stringWithFormat:@"<script type=""text/javascript"" src=""./myscript.js"">%@</script>", descriptionHTML];
[tempDescWV loadHTMLString:updatedDescHTML baseURL:nil];
// pdf creation code all goes here.
// now I try to load my UIImage onto the pdf.
UIImage *tempImage = [self imageFromWebView:tempDescWV];
[tempImage drawInRect:CGRectMake(65.0, 55.0, 210.0, 550.0)];
它完全空白,但是当我调试我用于UIWebView
的字符串时,我可以看到{{1}在那里。
这是loadHTMLString
方法,这似乎有效,只是html现在被加载到HTML
。
imageFromWebView
答案 0 :(得分:0)
UIWebView
以异步方式加载,因此在您尝试拍摄图像时,它不会呈现任何内容。您应该将自己设置为webview的委托,然后在webViewDidFinishLoad:
回调中创建您的图片。
答案 1 :(得分:0)
首先是正确的丹写道。拍摄使用以下内容:
- (UIImage *)takeScreenshotFromView:(UIView*)theView { //pass here your webview
UIGraphicsBeginImageContextWithOptions(theView.bounds.size, NO, [UIScreen mainScreen].scale);
[theView drawViewHierarchyInRect:theView.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}