【问题标题】:IOS library to convert powerpoint presentations into imagesIOS 库,用于将 powerpoint 演示文稿转换为图像
【发布时间】:2013-04-12 12:54:58
【问题描述】:

经过大量搜索并仍在搜索,我无法找到从 powerpoint 演示文稿中提取幻灯片的方法。需要帮助,如果他们知道与此相关的任何事情或已经实现了这样的事情,源代码将会很棒,或者任何参考链接也可以使用。我一直在使用 QLPreviewController,但我没有覆盖它。

【问题讨论】:

    标签: ios


    【解决方案1】:

    我不确定这是否仍然需要。但无论如何,这就是我的实现方式

    (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) 将步骤 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];
        }
    }
    

    希望对你有帮助

    【讨论】:

    • 感谢您的精彩见解:webview 实际上将 powerpoint 文档(和 pdf、doc、ecc)转换为纯 html 并不明显!这种模式在版本之间可能发生变化的可能性仍然极大地限制了这个特性的可利用性:你是否找到任何可靠的技术文档说明 html 将保持向后兼容性(或者至少你有一些第一手经验,例如:你使用了这个从 iOS4.x 开始的功能,并没有发现任何变化)?
    • 感谢 Rick77。你说的对。 iOS 库中的任何内部更改肯定会使这种方法无用。我刚刚浏览了 innerHTML 内容并设计了这个。我没有找到任何其他文档。我从 ios5.0 到 ios6.1 测试了这种方法,并且成功了。
    • 是否有可能从演示幻灯片中获取超链接?
    • 非常感谢代码 sn-p 和解析每张幻灯片的建议。我不知道它在 UIWebView 中显示时将 ppt 文件转换为 html。我已经扩展了您的代码并设置了一个完整的示例代码,该代码在 ppt 文件中生成每张幻灯片的 UIImage 缩略图。代码在这里:github.com/adamwulf/PowerPointToUIImage
    • @MansiPanchal 最后我记得 .key 没有被翻译成 HTML,或者没有被翻译成我可以解析的幻灯片计数/边界。这可能最近发生了变化,但当时我只能用 powerpoint 让它工作。
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2011-07-08
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多