如何使用目标c将(.doc,.xls,.ppt)转换为pdf?

时间:2014-08-02 11:04:58

标签: ios objective-c uikit quartz-core

我可以在pdf文件上实现注释并将其导出。

但是对于doc,xls和ppt,我无法使用目标c应用注释?

所以我打算将(.doc,.xls,.ppt)文件转换为pdf格式。

使用UIKit或Quartz框架可以实现吗?

1 个答案:

答案 0 :(得分:2)

您可以使用google docs API。

我已实施this

试一试就很容易实现......

第二个选项:使用以下内容,我是从here找到的。


(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];
    }
}

希望这有帮助

相关问题