如何在ios上显示pdf

虽然我之前做过很多教程和在线研究,但对于xcode仍然很xcode ,因为obj c不是我的本地编程语言,所以仍然有一些东西让我困惑。 (在我的实习生自学)

我想知道是否有任何方式为xcode iOS离线构build,使我们可以显示从本地文件的PDF文件。

我现在使用的方法是通过UIWebView来显示一个包含PDF URL(在线)的自定义HTML,但是我想在可能的情况下创build一个离线版本。

但从在线研究,在我看来,显示PDF的唯一方法是通过UIWebView,如果真的如此,是否有可能从本地资源拉(例如添加文件到我的xcode资源文件夹)文件,而不是使用PDFurl。

OFF-TOPIC:哪一个会是更好的select? 拉本地文件或使用PDF文件的在线URL?

由于UIWebView需要连接,因此只需拉取在线URL即可,因为它将是最新和最新的。

反馈非常感谢。 谢谢!

编辑:快速的问题,如果我使用UIDocumentInteractionController方法或QuickLook框架使其脱机,这将意味着我必须发布更新补丁每次有新的PDF文章中添加(纠正我,如果我错了)

考虑到这一点,我在现场对自己的问题提出了反驳(对不起,如果你们中的任何一个人觉得你在浪费时间,我是一个喜欢质疑可能性的人,可以采取不同的方法来解决问题)为了节省时间,从不断的更新和提供一个实时的基础解决scheme,这是使用UIWebView(我知道这是矛盾的这个SO线程的目的),因为这proj是基于一个在线网站(从那里得到我的内容和来源),如果我要加载他们的网站的文章部分,我敢说,通过添加一个NSStringvariables,我可以添加在NSRange函数到viewDidLoad与UIWebView一起使得URL永远不会离开新闻部分和PDF URL。 例如结合使用if和NSRange函数来检查URL是否只包含新闻部分和PDF URL)

我在一个NSRange函数之前做了一次点计算器,所以我认为这是一个很好的时间来使用这个框架的应用程序。

PS – 这个应用程序是一个组织基地项目,我是一个实习生,提供他们的基本骨架框架。

您可以使用UIWebView直接从您的包中获取PDF,无需调用在线Web服务。

本地文件:

 NSString *html = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:nil]; [self.webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]]; 

远程文件:

 - (void) loadRemotePdf { CGRect rect = [[UIScreen mainScreen] bounds];  CGSize screenSize = rect.size;     UIWebView *myWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)];    webView.autoresizesSubviews = YES;    webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);  NSURL *myUrl = [NSURL URLWithString:@"http://www.mysite.com/test.pdf"];  NSURLRequest *myRequest = [NSURLRequest requestWithURL:myUrl];     [webView loadRequest:myRequest];  [window addSubview: myWebView];  [myWebView release];   } 

许多选项,这里是3:

1)加载和显示本地PDF文件最简单的方法是使用这样的UIWebview:

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

2)您也可以使用UIDocumentInteractionController / QLPreviewController显示PDF文件。

3)另一种方法是build立一个自定义的PDF查看器,如苹果ZoomingPDFViewer示例代码 。 (使用UIPageViewController + CATiledLayer + UIScrollView)

我build议您在处理PDF文件时使用QuickLook框架 。

 NSString *path = [[NSBundle mainBundle] pathForResource:@"Yourpdf" ofType:@"pdf"]; NSURL *targetURL = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 300, 400)]; [[webView scrollView] setContentOffset:CGPointMake(0,500) animated:YES]; [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]]; [webView loadRequest:request]; [self.view addSubview:webView]; 

我发现这个网站,是一个非常简单的方法来打开PDF的任何可用的PDFfunction的应用程序,加载在iPhone上。 (我更喜欢iBooks)

简单的方式来呈现和打开PDF文件