2

我只想知道在 UIWebView 中加载 pdf 后是否可以知道它的大小?当我们使用这样的代码时:

[self.siteWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.test.fr/test.pdf"]]];
4

2 回答 2

1

是的。绝对有可能在 uiwebview 中获得 pdf 的高度(1 页高度或任何内容)。我以前做过。下面的代码显示了如何在 uiwebview 中获得 1 个页面高度。

-(void)getPDFInfo    
{
NSURL* pdfFileUrl = self.fileLocation;


CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfFileUrl);
CGPDFPageRef page;

// CGRect aRect = CGRectMake(0, 0, 100, 200); // thumbnail size


NSUInteger totalNum = CGPDFDocumentGetNumberOfPages(pdf);
numberOfPage= totalNum;
for(int i = 0; i < totalNum; i++ ) {
    CGPDFPageRef myPageRef=CGPDFDocumentGetPage(pdf, i+1);
    //aRect=CGPDFPageGetBoxRect(myPageRef, kCGPDFCropBox);

    CGRect cropBox = CGPDFPageGetBoxRect(myPageRef, kCGPDFCropBox);
    pdfWidth= cropBox.size.width;
    pdfHeight=cropBox.size.height;

    NSLog(@"cropbox size is %@",NSStringFromCGRect(cropBox));

    int pageRotation = CGPDFPageGetRotationAngle(myPageRef);

    CGSize pageVisibleSize = CGSizeMake(cropBox.size.width, cropBox.size.height);
    if ((pageRotation == 90) || (pageRotation == 270) ||(pageRotation == -90)) {
        pageVisibleSize = CGSizeMake(cropBox.size.height, cropBox.size.width);
    }



}
}

调用此函数后,调用此行以获取 uiwebview 中的 pdf 文件大小。

documentHeightInWebview = pdfHeight * (documentWidthInWebview/pdfWidth);

其中 documentWidthInWebview 是您的真实 uiwebview 宽度,它将显示您的 pdf 文件。

于 2014-01-08T08:11:10.673 回答
0

您可以使用 javascript 来获取信息。把它放在 webview 中确实加载了。例如,以下将获取页面的高度。

-(void) webViewDidFinishLoad:(UIWebView *)webView {

//get the height of the chunk, and store it.
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height;"] floatValue];
于 2012-11-07T23:48:20.900 回答