2013-04-12 3 views
3

많은 검색과 검색이 끝난 후 파워 포인트 프리젠 테이션에서 슬라이드를 추출하는 방법을 찾을 수 없습니다. 도움이 필요하거나, 이와 관련된 내용을 알고 있거나 그러한 것을 구현 한 경우 소스 코드가 훌륭하거나 참조 링크가 작동합니다. 내가 QLPreviewController 사용하고 있지만 그것을 무시하는 데 실패했습니다.파워 포인트 프리젠 테이션을 이미지로 변환하는 IOS 라이브러리

답변

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으로 정의하십시오. 모든 슬라이드

- (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

이 멋진 통찰력을 주셔서 감사합니다 도움을 저장하는 NSMutableArray *slides을 정의는 웹보기가 실제로 파워 포인트 문서를 변환 분명하지 않았다 (및 PDF, 문서, ECC) 일반 HTML로! 이 스키마가 버전간에 변경 될 가능성은 여전히이 기능의 악용 가능성을 크게 제한합니다. html이 이전 버전과의 호환성을 유지한다는 신뢰할 수있는 기술 문서를 찾았습니까? (예 : iOs4.x 이후의 기능 및 변경 사항을 통지하지 않았다)? – Rick77

+1

감사합니다 Rick77. 당신 말이 맞아요. iOS 라이브러리의 내부적 인 변경으로 인해이 접근법은 쓸모가 없습니다. 난 그냥 innerHTML 콘텐츠를 통해 이것을 설계했습니다. 다른 문서를 찾지 못했습니다. 필자는 ios5.0에서 ios6.1까지이 접근법을 테스트했으며 이것이 효과가있었습니다. – Ram

+0

정보를 제공해 주셔서 감사합니다! – Rick77

관련 문제