2013-10-03 56 views
1

我目前正在進行一個項目,我有ios需要顯示一個pdf文件。 但是我想選擇要顯示的頁面。例如,請參閱UIWebView中的第10頁,共37頁。 我還沒有找到一種方法來乾淨地分隔pfd的頁面。在UIWebview中顯示特定的pdf頁面ios

謝謝你的幫助。

+0

[iPhone的UIWebView PDF頁面跳轉(可能重複http://stackoverflow.com/questions/1974304/iphone-uiwebview-pdf-page-jump) – bummi

回答

2

您可以使用setContentOffset的WebView的屬性顯示頁面,

[[webView scrollView] setContentOffset:CGPointMake(0,10*pageheight) animated:YES]; 

其中pageheight =你的頁面高度,10是你的網頁沒有,

+0

是的,這種方法完美的作品,但我有其他網頁的邊框,我可以滾動。謝謝您的回答。 – user2724028

+0

@Viruss mca:你從哪裏得到「頁面高度」? – AlexR

+0

@AlexR:'CGFloat pageHeight = webView.scrollView.contentSize.height;''''或'NSLog(@「Client height:%@」,[webview stringByEvaluatingJavaScriptFromString:@「document.body.clientHeight」]);' –

9

使用UIWebView'sdelegate的方法來做到這一點:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    //Check if file still loading 
    if(!webView.isLoading) 
    { 
    //now traverse to specific page 
    [self performSelector:@selector(traverseInWebViewWithPage) withObject:nil afterDelay:0.1]; 
    } 
} 

現在添加下面的方法來遍歷你的頁面。 注意需要有效的PDF文件路徑,並提供您想要在PDF文件中遍歷的有效特定頁面號。

-(void)traverseInWebViewWithPage 
{ 
    //Get total pages in PDF File ----------- PDF File name here --------------- 
    NSString *strPDFFilePath = [[NSBundle mainBundle] pathForResource:@"yourPDFFileNameHere" ofType:@"pdf"]; 
    NSInteger totalPDFPages = [self getTotalPDFPages:strPDFFilePath]; 

    //Get total PDF pages height in webView 
    CGFloat totalPDFHeight = yourWebViewPDF.scrollView.contentSize.height; 
    NSLog (@"total pdf height: %f", totalPDFHeight); 

    //Calculate page height of single PDF page in webView 
    NSInteger horizontalPaddingBetweenPages = 10*(totalPDFPages+1); 
    CGFloat pageHeight = (totalPDFHeight-horizontalPaddingBetweenPages)/(CGFloat)totalPDFPages; 
    NSLog (@"pdf page height: %f", pageHeight); 

    //scroll to specific page --------------- here your page number ----------- 
    NSInteger specificPageNo = 2; 
    if(specificPageNo <= totalPDFPages) 
    { 
     //calculate offset point in webView 
     CGPoint offsetPoint = CGPointMake(0, (10*(specificPageNo-1))+(pageHeight*(specificPageNo-1))); 
     //set offset in webView 
     [yourWebViewPDF.scrollView setContentOffset:offsetPoint]; 
    } 
} 

對於總的PDF頁面

-(NSInteger)getTotalPDFPages:(NSString *)strPDFFilePath 
{ 
    NSURL *pdfUrl = [NSURL fileURLWithPath:strPDFFilePath]; 
    CGPDFDocumentRef document = CGPDFDocumentCreateWithURL((CFURLRef)pdfUrl); 
    size_t pageCount = CGPDFDocumentGetNumberOfPages(document); 
    return pageCount; 
} 

享受編碼的計算.....