Angular2下使用pdf插件的方法详解


Posted in Javascript onApril 29, 2017

前言

最近因为工作的原因,需要在Angualr2建的项目里做一个pdf显示的功能,在网上找了个插件,不过由于是第一次使用额外插件,在用的时候遇到了一些坑,这里权且记一下使用的步骤,方便以后的参考。

安装

这里需要安装两个包:pdfjs-distng2-pdf-viewer,安装时是要顺便保存到package.json里的,因此在项目根目录下输入下面命令:

npm install pdfjs-dist --save
npm install ng2-pdf-viewer --save

于此同时,我们还要在system.config.js里添加映射,否则会加载不到这个插件。我们需要添加两个地方,首先是要添加在其中的map变量下:

var map = {
 ......
 'ng2-pdf-viewer': 'node_modules/ng2-pdf-viewer',
 'pdfjs-dist': 'node_modules/pdfjs-dist'
}

然后还要添加在packages变量下:

var packages = {
 'ng2-pdf-viewer': { main: 'dist/index.js', defaultExtension: 'js' },
 'pdfjs-dist': { defaultExtension: 'js' }
}

这样我们才能正确的引用这个包。

注册主配置文件

要使用他,我们还要在app.module.ts文件里注册这个包,才能在其他文件里使用,一个最简单的配置如下:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
import { PdfViewerComponent } from 'ng2-pdf-viewer';
@NgModule({
 imports: [BrowserModule],
 declarations: [AppComponent, PdfViewerComponent],
 bootstrap: [AppComponent]
})
class AppModule {}
platformBrowserDynamic().bootstrapModule(AppModule);

注意:要import,然后在@NgModule里的declarations里注册即可。

页面配置

在模板页面中,只要在适当的位置添加类似下面的标签:

<pdf-viewer [src]="pdfSrc"
 [ page ]="page"
 [original-size]="true"
 style="display: block;">

</pdf-viewer>

然后在.ts文件里定义pdfSrc以及page变量,即可控制显示的文件路径以及页数。

这里需要注意的是:文件源如果是跨域的话是会报一个error的,而且这里的page是竖排显示的而不是带滚轮的显示,因此这实际上显示的是一张一张的图片。

当然,pdf-viewer还有很多其他的属性,比如支持缩放,旋转,以及提供了一系列相关的回调函数,具体的可以在github里找到,当然大家也可以通过本地下载。

样例

Angular2下使用pdf插件的方法详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
Mar 13 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
Javascript读取上传文件内容/类型/字节数
Apr 30 Javascript
JavaScript实现星级评价效果
May 17 Javascript
Elasticsearch实现复合查询高亮结果功能
Sep 10 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 Javascript
通过原生vue添加滚动加载更多功能
Nov 21 Javascript
Openlayers实现距离面积测量
Sep 28 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 #Javascript
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 #jQuery
Javascript实现数组中的元素上下移动
Apr 28 #Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 #jQuery
JS简单判断滚动条的滚动方向实现方法
Apr 28 #Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 #Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 #Javascript
You might like
PHP静态类
2006/11/25 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
详解React 条件渲染
2020/07/08 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python中为什么要用self探讨
2015/04/14 Python
Python 多线程实例详解
2017/03/25 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python+tkinter实现学生管理系统
2019/08/20 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
Pycharm中如何关掉python console
2020/10/27 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
募捐倡议书怎么写
2014/05/14 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
未中标通知书
2015/04/17 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书