iOS 加载pdf格式的文件

Posted 走路蹩脚的火星人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 加载pdf格式的文件相关的知识,希望对你有一定的参考价值。

可以加载的方式比较多,暂时先总结两种:

本地先导入一份pdf文件

type 1: 利用UIWebView加载

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
    [self.view addSubview:webView];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"基于Apache+JMeter" ofType:@"pdf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

type 2:利用系统的预览文件的框架QuickLook

 首先导入框架QuickLook.framework

引入头文件#import <QuickLook/QuickLook.h>

实例化对象

  QLPreviewController *myQlPreViewController = [[QLPreviewController alloc]init];
    myQlPreViewController.delegate =self;
    myQlPreViewController.dataSource =self;
    [myQlPreViewController setCurrentPreviewItemIndex:0];
    //此处可以带导航栏跳转、也可以不带导航栏跳转、也可以拿到View进行Add
    [self presentViewController:myQlPreViewController animated:YES completion:^{
        NSLog(@"跳转完成");
    }];

声明代理

<QLPreviewControllerDelegate,QLPreviewControllerDataSource>

 实现协议

#pragma mark - QLPreviewController代理
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
    return 1;
}

- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"基于Apache+JMeter" ofType:@"pdf"];
    return [NSURL fileURLWithPath:path];
}

- (void)previewControllerDidDismiss:(QLPreviewController *)controller
{
    NSLog(@"预览界面已经消失");
}

//文件内部链接点击不进行外部跳转
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item
{
    return NO;
}

 

至此结束,加载过程可能比较缓慢,毕竟需要加载本地pdf文件;

两种方式比较可以看出,第一种加载比较方便,但是内存消耗的比较多,第二种内存消耗的比较少,我实际测的是差20MB(用的模拟器)。

mark ---------

 

以上是关于iOS 加载pdf格式的文件的主要内容,如果未能解决你的问题,请参考以下文章

IOS加载PDF文件

HTML iframe 标签 在手机 打开PDF 格式文件 为啥会加载不出来 显示空白页面

java怎样将网页上面的数据以pdf的格式导出,求代码

您好,我想用java代码调用wps?

iOS 加载PDF问题无法显示电子章问题

使用 PDFKit Swift (ios)/Capacitor 加载 PDF 而不下载文件