iOS加载签章pdf——pdf.js

pdf.jpg

加载pdf文件一般我们会使用UIWebView、WKWebView来加载pdf,但是当pdf内含有签名以及电子章的时候,电子签章和签名将无法显示出来。原因是:在PDF文件中看到的签名是签名字段小部件的外观。字段小部件是特定的PDF注释。iOS中的默认PDF呈现引擎(由UIDocumentInteractionController,QuickLook框架等使用)仅显示主页面内容,它不显示PDF页面上的注释。这时候就需要我们使用其他第三方PDF渲染引擎了。

pdf.js在 HTML5 平台上展示 PDF 文档。支持web、iOS、Android端(android 手机微信端不支持)。
1.创建iOS工程,将minified复制到工程目录中。


minified复制到工程目录.png

2.拖拽复制的文件目录到工程中,选择folder references(亲测选择groups没有效果,原因未知):

拖拽复制的文件目录到工程中.png

3.新建PdfLoadWebView继承自UIWebView,添加如下代码:

- (void)loadPDFFile:(NSString*)filePath {
    _filePath = filePath;
  
    NSString *viwerPath = [[NSBundle mainBundle] pathForResource:@"viewer" ofType:@"html" inDirectory:@"minified/web"];
    NSString *urlStr = [NSString stringWithFormat:@"%@?file=%@#page=1",viwerPath,filePath];
    urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];
    [self loadRequest:request];
}

在控制器里添加如下代码:

  webView = [[PdfLoadWebView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:webView];
    NSString *pdfFilePath = [[NSBundle mainBundle] pathForResource:@"git搭建" ofType:@"pdf"];
    [webView loadPDFFile:pdfFilePath];

运行后效果如图:


运行后效果.png

注释:
1.因为项目中我只需要展示pdf,所以就将对pdf的操作按钮隐藏掉了。如果需要按钮将minified->web->viewer.html 中

代码修改成

viewer.png

2.项目中需要用到pdf滚到到底部或者头部,所以我在viewer.html写了两个js方法以供oc进行调用。
viewer.html文件中


                    
                    

你可能感兴趣的:(iOS加载签章pdf——pdf.js)