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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
js数组操作常用方法
May 08 Javascript
node.js开机自启动脚本文件
Dec 24 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
Jan 16 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 Javascript
js 实现ajax发送步骤过程详解
Jul 25 Javascript
vue 组件内获取actions的response方式
Nov 08 Javascript
JavaScript中isPrototypeOf函数
Nov 07 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递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
js 对象是否存在判断
2009/07/15 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
js中replace的用法总结
2013/12/27 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
Python实现二叉堆
2016/02/03 Python
Python操作csv文件实例详解
2017/07/31 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
一道Delphi面试题
2016/10/28 面试题
工程师自我评价怎么写
2013/09/19 职场文书
服务行业个人求职的自我评价
2013/12/12 职场文书
《钱学森》听课反思
2014/03/01 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
会计岗位说明书
2014/07/29 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
高中英语教学反思范文
2016/03/02 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
SQL Server删除表中的重复数据
2022/05/25 SQL Server