1

我在 UIWebView 中显示本地 pdf 文件,但它在路径中显示异常这是我的代码

     NSString*fileName=content_Source;
     NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"pdf"];
     NSURL *url = [NSURL fileURLWithPath:path];
     NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView setScalesPageToFit:YES];
    [webView loadRequest:request]
4

4 回答 4

6

设置文件名时必须使用文件扩展名。因此,如果它与 Type 一起设置(如 ofType:@"pdf"),请确保不会在文件名中使用扩展名。

这是我的代码:

UIWebView *webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
webView.backgroundColor = [UIColor redColor];
NSString*fileName= @"About_Downloads";
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path isDirectory:NO]];
[webView setScalesPageToFit:YES];
[webView loadRequest:request];
[self.view addSubview:webView];

有一种更好的方式来显示 PDF:

UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path isDirectory:NO]];
dc.delegate = self; 
[dc presentPreviewAnimated:YES];

确保将委托与该代码一起使用以使其正常工作。

(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
    return self;
}
于 2013-04-16T05:46:52.673 回答
1

首先验证该字符串并分配给如下所示的 URL。

   NSString *strURLPath = [self trimString: path];
   NSURL *url = [NSURL fileURLWithPath:strURLPath];

用我下面的方法...

-(NSString*) trimString:(NSString *)theString {
    if (theString != [NSNull null])
        theString = [theString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    return theString;
}
于 2013-04-16T06:06:58.030 回答
1

对于给定的代码问题,它工作正常是在我的文件名中,我也给出了像 ali.pdf 这样的类型,他们键入 pdf 所以它得到异常,现在当我使用如下文件名时它工作正常

 NSString*fileName=@"ali";

代替

    NSString*fileName=@"ali.pdf";
于 2013-04-16T06:23:36.710 回答
0
CGRect rect = [[UIScreen mainScreen] bounds];
    CGSize screenSize = rect.size;
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"pdf" ofType:@"pdf"];
    NSURL *targetURL = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [webView loadRequest:request];

    [self.view addSubview:webView];
于 2014-06-05T11:15:07.540 回答