【发布时间】:2013-04-12 12:54:58
【问题描述】:
经过大量搜索并仍在搜索,我无法找到从 powerpoint 演示文稿中提取幻灯片的方法。需要帮助,如果他们知道与此相关的任何事情或已经实现了这样的事情,源代码将会很棒,或者任何参考链接也可以使用。我一直在使用 QLPreviewController,但我没有覆盖它。
【问题讨论】:
标签: ios
经过大量搜索并仍在搜索,我无法找到从 powerpoint 演示文稿中提取幻灯片的方法。需要帮助,如果他们知道与此相关的任何事情或已经实现了这样的事情,源代码将会很棒,或者任何参考链接也可以使用。我一直在使用 QLPreviewController,但我没有覆盖它。
【问题讨论】:
标签: ios
我不确定这是否仍然需要。但无论如何,这就是我的实现方式
(1)使用UIWebView显示PPT的内容。格式良好的 (!) 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) 将步骤 5 中的所有样式与 div 标记内容连接起来。定义一个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];
}
}
希望对你有帮助
【讨论】: