在Objective c中从WORD文档创建Thumbnailimage的问题

时间:2012-01-24 21:54:33

标签: objective-c ios thumbnails

我正在尝试创建一个Word文档的ThumbnailImage。我使用UIWebView加载文档,然后将其转换为图像。 PNG文件。我已经观看了一千次并且文件路径是正确的,但最终图像是空白的。有人可以查看我的代码,看看是否有什么问题?非常感谢你提前。

UIWebView *myWebView22 = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

path44 = [caminoINICIAL stringByAppendingPathComponent:@"documentoInicial.doc"];

NSURL *fileURL22 = [[NSURL alloc] initFileURLWithPath:path44];

NSURLRequest *req22 = [NSURLRequest requestWithURL:fileURL22];

[myWebView22 setScalesPageToFit:YES];

[myWebView22 loadRequest:req22];


UIGraphicsBeginImageContext(myWebView22.bounds.size);

CGContextRef c = UIGraphicsGetCurrentContext();

CGContextTranslateCTM(c, 0, 0); 

[myWebView22.layer renderInContext:c];

UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

pngPath = [caminoINICIAL stringByAppendingPathComponent:[NSString stringWithFormat:@"imagenFinal.png"]];

[UIImagePNGRepresentation(viewImage) writeToFile:pngPath atomically:YES];

2 个答案:

答案 0 :(得分:0)

我很确定这是一个时间问题。 UIWebView具有自己的线程并加载文档异步,您需要等到它被加载后再使用renderInContext。

通过固定时间或深度子视图检查来确定时间可能很棘手。

您可能希望使用QuickLook而不是UIWebView来更多地控制渲染。

答案 1 :(得分:0)

问题是您正在触发请求,然后立即捕获图像。 loadRequest:是异步的。它发送请求,并立即返回。它不会等到文档加载后再返回。因此,当您捕获图像时,设备仍在忙于加载文档。

您可以为Web视图提供一个委托,该委托在文档加载完成后接收消息。从该委托方法中捕获图像。