2013-10-03 2 views
1

В настоящее время я работаю над проектом, и у меня есть ios, чтобы отобразить pdf-файл. Однако я хочу выбрать страницу для отображения. Например, см. Страницу 10 из 37 в UIWebView. Я не нашел способ чисто отделить страницы п.п.м.показать конкретную страницу в формате PDF в UIWebview 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 (@" Высота клиента:% @ ", [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; 
} 

Enjoy кодирование .....

Смежные вопросы