IOS库将PowerPoint演示文稿转换为图像
问题描述:
经过大量搜索并仍在搜索中,我无法找到从幻灯片演示文稿中提取幻灯片的方式。需要帮助,如果他们知道任何与此相关的事情或者已经实施了这样的事情,那么源代码将非常棒,或者任何引用链接也将起作用我一直在使用QLPreviewController,但我没有覆盖它。IOS库将PowerPoint演示文稿转换为图像
答
我不确定这是否仍然需要。但无论如何,这是我如何实施
(1)使用UIWebView
来显示PPT的内容。良好的(!)HTML可以让你解析它。获取使用HTML
NSString *htmlContent = [self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
(2)计数的div class = 'slide
号码,让他们滑数
(4)你必须使用下面的代码
解析HTML得到的样式和div
(5)获取的所有样式
- (NSString *)getStyles:(int)slideCount forView:(UIWebView *)view {
NSString *getElementByTag = [[NSString alloc] init];
NSString *allStyles = [[NSString alloc] init];
for (int i = 0; i < slideCount; i++) {
getElementByTag = [NSString stringWithFormat:@"document.getElementsByTagName('style')[%d].innerHTML", i];
NSString *style = [[view stringByEvaluatingJavaScriptFromString:getElementByTag] stringByAppendingString:@"\n"];
allStyles = [allStyles stringByAppendingString:style];
}
allStyles = [@"<style type='text/css'>" stringByAppendingString: allStyles];
return [allStyles stringByAppendingString:@"</style>"];
}
(6)串连所有从div
标签内容第5步的样式。定义一个NSMutableArray
变量以存储包含样式的所有幻灯片以备将来参考。定义NSMutableArray *slides
来存储所有的幻灯片
- (void)makeSlides:(int)slideCount forView:(UIWebView *)view {
self.slides = [[NSMutableArray alloc] init];
for (int i = 0; i < slideCount; i++) {
NSString *slideBody = [NSString stringWithFormat:@"document.getElementsByClassName('slide')[%d].innerHTML", i];
NSString *div = [view stringByEvaluatingJavaScriptFromString:slideBody];
NSString *slide = [self.slideStyles stringByAppendingString:div];
[self.slides addObject:slide];
}
}
希望这有助于
谢谢你的精彩见解:这不是很明显的是,网页流量实际转化PowerPoint文档(和PDF,DOC,ECC)到普通HTML!这种模式在版本之间可能会发生变化的可能性很大程度上限制了此功能的可利用性:您是否发现过任何可靠的技术文档,指出html将保持向后兼容性(或者至少您是否拥有第一手经验,例如:您使用过自iOs4.x以来的功能,并没有注意到任何改变)? – Rick77
感谢Rick77。你是对的。 iOS库中的任何内部更改肯定会使此方法无用。我刚刚浏览了innerHTML内容并设计了此内容。我没有找到任何其他文件。我通过ios6.1从ios5.0测试了这个方法,这个工作。 – Ram
感谢您的信息! – Rick77