Проблемы с созданием миниатюрного изображения из документа WORD в Objective c - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь создать документ ThumbnailImage to Word.Я использую 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 голосов
/ 10 мая 2012

Проблема в том, что вы запускаете запрос, а затем немедленно захватываете изображение.loadRequest: является асинхронным.Он отправляет запрос и возвращается немедленно.Он не ждет, пока документ загрузится, прежде чем вернуться.Поэтому, когда вы захватываете изображение, устройство все еще загружается, загружая документ.

Вы можете предоставить делегата веб-представлению, которое получает сообщение после завершения загрузки документа.Захват изображения из этого метода делегата.

0 голосов
/ 10 мая 2012

Я почти уверен, что это проблема времени.UIWebView имеет собственные потоки и загружает документ асинхронно, вам нужно дождаться его загрузки, прежде чем использовать renderInContext.

Выяснить, что время может быть сложным, либо с фиксированным временем, либо с некоторой глубокой проверкой подвидов.

Возможно, вы захотите использовать QuickLook вместо UIWebView, чтобы получить немного больше контроля надрендеринга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...