我只是想知道在UIWebView中加载后是否可以知道pdf的大小? 当我们使用这样的代码时:
[self.siteWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.test.fr/test.pdf"]]];
答案 0 :(得分: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文件。
答案 1 :(得分:0)
您可以使用javascript获取信息。把它放在webview中加载。例如,以下内容将获得页面的高度。
-(void) webViewDidFinishLoad:(UIWebView *)webView {
//get the height of the chunk, and store it.
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height;"] floatValue];