PDF.Js的使用—javascript中前端显示pdf文件
PDF.Js的使用—javascript中前端显示pdf文件
写于2018/12/6
起因是一个图片展示页面需要展示pdf格式的文件,所以查了半天决定使用pdf.js,我也不求有多了解它,能实现我想要的效果就行,但至少到了最后我让它的demo跑了起来。
网上很多教程要么不全,要么就是很杂很深又不靠谱,因为我不怎么想了解它是用什么框架完成的,怎么make的,我只想要在前端引入js并能展示pdf,所以很多看不下去,但是获得pdf.js之前还是需要进行一些配置,大致的配置过程如下吧。
1、 取得pdf.js文件中的build
<1>从git下载pdf.js
git clone git://github.com/mozilla/pdf.js.git
或者直接从https://codeload.github.com/mozilla/pdf.js/zip/master下载
但是:这个文件夹里面是没有build文件夹的(虽然查到一大堆教程开口就是我们可以看到一个文件夹build……),目录如下——但是如果你下载的版本是有build文件的,那就跳过下文,进行2
<2>生成build文件——命令行在pdf.js的根目录下输入:
gulp server
gulp generic(需要先安装)
a.安装gulp
生成build文件需要gulp,我不知道这是什么,但是如果你输入上述两个命令成功了,那就恭喜你获得build文件夹了,如果没有,跟着安装吧
- 先安装node.js
https://nodejs.org/en/download/
使用node –v有输出版本那说明你电脑里已经安装了
- 再:
npm install -g gulp-cli npm install gulp
输入 gulp –v,输出如下就应该可以了
- 最后:
gulp server gulp generic
b.遇到过的错误 Task function must be specified
如上错误,网上有两种说法:1、cli和local版本不一致即在pdf.js下输入gulp –v得到的两个版本号不一致。2、是gulp4不兼容gulp3,在某些地方的写法在gulp4中是不对的写法。
我的cli和local版本的确不一致(这个后面看网上某些说明好像并没有问题),还有pdf.js可能是gulp3写的,所以我直接将两个版本都变成一致的gulp3。命令
npm install gulp@3 –g npm install --save--dev gulp@3
2、 引用build文件夹中的文件进行前端html和js的构建
<1>网页运行环境
如果直接双击打开某个demo的html,在console会报错,并提示你只能通过http访问。如果你是大神应该懂了,如果像我那么傻过就看下去。只能通过http访问,即是使得你的访问方式是http://127.0.0.1:端口号/xxx,或者http://localhost:端口号/xxx,当然在那之前你要运行某个服务器,比如说Tomcat、Django、node.js、Vue等等。要用的话了解一下这些吧,我并没有发现更简单的方式。虽然没怎么用过,但是仅用于学习的话,node.js应该是最简单的方式。
由于我之前用的就是Django,那就直接使用了。
<2>pdf.js,viewer.html
运行gulp后我生成的build如下f图一所示,generic/build之中比较重要的是build文件夹和web文件夹,如图二所示,build文件夹中包含了主要的pdf.js和pdf.worker.js,而web文件夹中包含了viewer.html,是一个比较有用的网页,下文将会提到。在这里,你需要知道的是,无论在example文件中的demo引用的还是你自己网页引用的都是build文件夹(根目录下的那个)中的文件,就我现在而言,其他的文件并没有什么用(除了用于生成build和学习pdf.js—example的使用)。
<3>viewer.html
通过http直接访问到viewer.html,你会得到下图所示的网页——一个完整的,包含大部分操作的网页。(如果其中有引用的js,css出错,根据你使用的框架的特点,看着console改吧)。
而如果你想要展示自己的pdf,则使用
. …./viewer.html?file=xxx/xxx/xxx.pdf
而你想要直接查看效果,官网有demo,网址如下:
http://mozilla.github.io/pdf.js/web/viewer.html
而你想向官网传入自己的pdf……好像pdf必须存在某个开放的服务器上
<4>自己在网页中添加
由于viewer.html完美解决了我的问题,这个部分只是稍微了解了一下。
首先PDFJS is not define!我也不知道为什么一大堆教程用的都是PDFJS,但是这个分明不能用了呀!可以查看pdf.js中的example代码来学习,最简单的是learning文件夹中的hello world。
参考地址
https://www.cnblogs.com/iPing9/p/7154753.html
https://www.jianshu.com/p/40b99bed3127
https://www.cnblogs.com/iPing9/p/7154753.html
http://mozilla.github.io/pdf.js/
PDF.Js的使用—javascript中前端显示pdf文件的更多相关文章
- 在网页浏览器中原生显示PDF文件
在网页中直接显示pdf格式的文件方便阅读.但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了. 这种方式的好处就是不需要转换,直接显示,而且在加载时(高级的浏览器, ...
- pdf.js插件使用记录,在线打开pdf
天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究了一下这个控件. 有些人很好奇,在线打开pdf文档浏览器不是支持吗.是的你说的都是现代浏览 ...
- 织梦中在线显示pdf文件的方法
如何在织梦中添加pdf文件并显示呢?下面这个教程将带领大家来操作.(注:手机版无法查看) 第一步:在系统-系统基本参数-附件设置中添加pdf格式 并且将大小调大 第二步:在核心-内容模型-普通文章中添 ...
- 【JS】336- 拆解 JavaScript 中的异步模式
点击上方"前端自习课"关注,学习起来~ JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS ...
- 【JS】285- 拆解 JavaScript 中的异步模式
JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS.我最初接触不同的异步模式时,曾想当然的觉得 promise ...
- pdf.js在国际化的时候,显示不了中文的解决办法
在项目中使用了pdf实现在线预览功能,开始工具栏中一直都是英文的,在view.js中设置了也不起作用,偶然发现了问题所在 当我把网站发布到iis上的时候,用google浏览器的审查元素功能的审核发现j ...
- js学习笔记----JavaScript中DOM扩展的那些事
什么都不说,先上总结的图~ Selectors API(选择符API) querySelector()方法 接收一个css选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null ...
- js实例分析JavaScript中的事件委托和事件绑定
我们在学习JavaScript中,难免都会去网上查一些资料.也许偶尔就会遇到“事件委托”(也有的称我“事件代理”,这里不评论谁是谁非.以下全部称为“事件委托”),尤其是在查JavaScript的事件处 ...
- pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现
近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快 ...
随机推荐
- vue.js路由vue-router(一)——简单路由基础
前言 vue.js除了拥有组件开发体系之外,还有自己的路由vue-router.在没有使用路由之前,我们页面的跳转要么是后台进行管控,要么是用a标签写链接.使用vue-router后,我们可以自己定义 ...
- Centos7最小化安装后再安装图形界面
1. yum -y groupinstall "X Window System" 2. yum -y groupinstall "GNOME Desktop" ...
- mysql not in用法
select * from zan where uid not in(select uid from zan where zhongjiang !=0) group by uid order by r ...
- Vue2.0八——知识点整理
1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么获取传过来的动态参数? 答 ...
- snmpd修改端口
http://blog.csdn.net/cau99/article/details/5077239 http://blog.csdn.net/gua___gua/article/details/48 ...
- Qt Quick 之 PathView 具体解释
PathView ,顾名思义,沿着特定的路径显示 Model 内的数据. Model 能够是 QML 内建的 ListModel . XmlListModel ,也能够是在 C++ 中实现的 QAbs ...
- int long long 的取值范围
unsigned int 0-4294967295 //整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明 ...
- Java源代码之集合框架(图)
百度"java 集合"图时.搜出来一张图.图蛮不错的.跟大家分享下.
- CentOS 开启 IPV6
编辑网卡地址:#vi /etc/sysconfig/network-scripts/ifcfg-eth0IPV6INIT=yesIPV6FORWARDING=yesIPV6ADDR=2607:9000 ...
- js---12数据类型,数据类型转换,NaN,
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...