2012-02-19 4 views
0

理想的には、pptとpdfドキュメントを枠線や仕切りなしでwebviewに読み込みたいと考えています。私はこれが可能だとは思わない。したがって、この質問は、pptドキュメント内の分割をうまく処理することに取り組んでいます。UIWebviewとパワーポイントデバイダの問題

私は自分のページングを作るpptをスクロールしようとしています。私はこれをwebviewのスクロールビューの組み込みのページングを使って試しましたが、うまくいきませんでした。除算器の高さを計算することは難しく、除算器は常にこの方法を使用して存在します。

現在、私は31ページのスライドショーでテストしています。場合によっては、分割画面の一部がウェブビューの上部に表示されることがあります。 (15,24,25,26ページ目)

pptxのアスペクト比は16x9です。私のwebviewは1024x576で、私はそれがwebview内のスライドのサイズであると仮定しています。

次のように分周器サイズを計算します。

ドキュメントの高さは18069です。
18069/576〜31.369つまり、31ページあります。
私は、以下のように分周器に占めるスペースの量を計算します:18069-(31 * 576)= 213.
そして、213/30 = 7.1は分周器の高さです。

分数の高さが小数であることは非常に混乱しています。さらに、なぜ31ページの例では、15,24,25,26ページが正しく整列していないページであるのか混乱しています。

これまでのところ特定のサイズの質問は申し訳ありませんが、動的サイズのドキュメントのページダウンアクションを処理するコードはここにあります。ここで

- (void)handlePptSwipeUp:(UISwipeGestureRecognizer *)sender 
{ 
    //swipe up means scroll down 
    CGSize pptSize = pptWebView.scrollView.contentSize; 
    float y = pptSize.height; 
    int pages = y/pptWebView.frame.size.height; 
    float diff = pptSize.height - pages*pptWebView.frame.size.height; 
    float divider = diff/(pages-1); 

    CGPoint cOffset = pptWebView.scrollView.contentOffset; 
    float temp = pptScrollOffset + pptWebView.frame.size.height+divider; 
    if (temp+pptWebView.frame.size.height <= pptWebView.scrollView.contentSize.height) { 
    pptScrollOffset = temp; 
    } 
    CGRect visibleRect = CGRectMake(cOffset.x, pptScrollOffset, pptWebView.frame.size.width, pptWebView.frame.size.height); 
    [pptWebView.scrollView scrollRectToVisible:visibleRect animated:YES]; 

    NSLog(@"content width %f\ncontent height %f\npages %d\ndiff %f\ndivider %f\npptScrollOffset %f",pptWebView.scrollView.contentSize.width,y,pages,diff,divider,pptScrollOffset); 
} 

は、私が他のページに同じようなことを読ん

content width 1024.000000 
content height 18069.000000 
pages 31 
diff 213.000000 
divider 7.100000 
pptScrollOffset 583.099976 
+0

これはおそらく失敗や複雑な混乱で終了します。 UIWebViewには非常に複雑なビュー階層と基本的な描画メソッドがあります。私はおそらくUIWebViewを使用しないパワーポイントビューアの周りに買い物をするだろう。 – CodaFi

答えて

0

1ページをスクロールした後の出力の例です。

私はページを今見つけることができません...そう、私はちょうどスライドのサイズを得ることができるコードを入れます。その後

NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %@);", h]; 
[_webView stringByEvaluatingJavaScriptFromString:javascript]; 

このサンプルでは、​​国境を数えていなかったのWebViewをスクロール

NSString *w=[_webView stringByEvaluatingJavaScriptFromString:@"function x(){var rtn='';for (var i=1;i<document.all.length;i++){var a=document.all[i];if (((a.clientWidth>0)&&(a.clientHeight>0))&&(a.scrollHeight.toString()==a.offsetHeight.toString())&&(a.offsetHeight.toString()==a.clientHeight.toString())){return ''+a.offsetWidth; }}return rtn;};x();"]; 
NSString *h=[_webView stringByEvaluatingJavaScriptFromString:@"function x(){var rtn='';for (var i=1;i<document.all.length;i++){var a=document.all[i];if (((a.clientWidth>0)&&(a.clientHeight>0))&&(a.scrollHeight.toString()==a.offsetHeight.toString())&&(a.offsetHeight.toString()==a.clientHeight.toString())){return ''+a.offsetHeight; }}return rtn;};x();"]; 

この

はコードです。ちょうどそれらを入れて、私はそれが完璧だろうと思う~~

関連する問題