如何在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文件
- 无法使用UIScrollView和pagingEnabled = YES禁用反弹
- 带有混合Swift和Objective-c项目的Xcode 8没有find“ModuleName-Swift.h”头文件
- Marmalade SDK与游戏开发更相关或常用?
- 使用AWSiOS SDK,您如何对S3对象执行HEAD请求?
- Swift 3.0类说明—类型方法,单例,DatePicker,枚举,错误处理
- iOS 7 UITextView垂直alignment
- 检测应用是否在iOS 9的“幻灯片放映”或“分屏视图”模式下运行
- 重新加载tableview部分没有滚动或动画
- 目前正在进行演示? 试图显示一个新的看法后,Facebookloginparsing。