2013-04-12 60 views
3

經過大量搜索並仍在搜索中,我無法找到從幻燈片演示文稿中提取幻燈片的方式。需要幫助,如果他們知道任何與此相關的事情或者已經實施了這樣的事情,那麼源代碼將非常棒,或者任何引用鏈接也將起作用我一直在使用QLPreviewController,但我沒有覆蓋它。IOS庫將PowerPoint演示文稿轉換爲圖像

回答

4

我不確定這是否仍然需要。但無論如何,這是我如何實施

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

希望這有助於

+1

謝謝你的精彩見解:這不是很明顯的是,網頁流量實際轉化PowerPoint文檔(和PDF,DOC,ECC)到普通HTML!這種模式在版本之間可能會發生變化的可能性很大程度上限制了此功能的可利用性:您是否發現過任何可靠的技術文檔,指出html將保持向後兼容性(或者至少您是否擁有第一手經驗,例如:您使用過自iOs4.x以來的功能,並沒有注意到任何改變)? – Rick77

+1

感謝Rick77。你是對的。 iOS庫中的任何內部更改肯定會使此方法無用。我剛剛瀏覽了innerHTML內容並設計了此內容。我沒有找到任何其他文件。我通過ios6.1從ios5.0測試了這個方法,這個工作。 – Ram

+0

感謝您的信息! – Rick77

相關問題