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文件的更多相关文章

  1. 在网页浏览器中原生显示PDF文件

    在网页中直接显示pdf格式的文件方便阅读.但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了. 这种方式的好处就是不需要转换,直接显示,而且在加载时(高级的浏览器, ...

  2. pdf.js插件使用记录,在线打开pdf

    天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究了一下这个控件. 有些人很好奇,在线打开pdf文档浏览器不是支持吗.是的你说的都是现代浏览 ...

  3. 织梦中在线显示pdf文件的方法

    如何在织梦中添加pdf文件并显示呢?下面这个教程将带领大家来操作.(注:手机版无法查看) 第一步:在系统-系统基本参数-附件设置中添加pdf格式 并且将大小调大 第二步:在核心-内容模型-普通文章中添 ...

  4. 【JS】336- 拆解 JavaScript 中的异步模式

    点击上方"前端自习课"关注,学习起来~ JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS ...

  5. 【JS】285- 拆解 JavaScript 中的异步模式

    JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS.我最初接触不同的异步模式时,曾想当然的觉得 promise ...

  6. pdf.js在国际化的时候,显示不了中文的解决办法

    在项目中使用了pdf实现在线预览功能,开始工具栏中一直都是英文的,在view.js中设置了也不起作用,偶然发现了问题所在 当我把网站发布到iis上的时候,用google浏览器的审查元素功能的审核发现j ...

  7. js学习笔记----JavaScript中DOM扩展的那些事

    什么都不说,先上总结的图~   Selectors API(选择符API) querySelector()方法 接收一个css选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null ...

  8. js实例分析JavaScript中的事件委托和事件绑定

    我们在学习JavaScript中,难免都会去网上查一些资料.也许偶尔就会遇到“事件委托”(也有的称我“事件代理”,这里不评论谁是谁非.以下全部称为“事件委托”),尤其是在查JavaScript的事件处 ...

  9. pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现

    近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快 ...

随机推荐

  1. 解决电信或网通的DNS劫持

    大家有没有碰到访问一些不存在域名或者网站时,浏览器本应显示一个网址不存在之类的信息,但是因为现在很多ISP做了DNS劫持将不存在的域名或网址重定向到ISP的广告页面,烦人的狠.其实tomato可以解决 ...

  2. 《三》build 快速创建模块

    一.将build.php文件复制一份放在 application目录下 二.修改build.php文件代码 <?php return [ 'home' => [ //需要生成的目录 '__ ...

  3. JS之字符串和数组

    字符串: 属性: length:可以获取字符串的长度: <script type="text/javascript"> var str = "haha&quo ...

  4. nginx编译安装选项说明

    configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法.然后,它创建 Makefile 文件. configure 支持下面的选项: –prefix= <path ...

  5. 记VS2008初始化Microsoft Visual Sourcesafe源码管理提供程序时失败

    之前vs2008开发一直都好好,不知道为什么如今的vs2008打开和关闭都老是弹出这这个初始化Microsoft Visual Sourcesafe源码管理提供程序时失败的错误 解决方法非常easy: ...

  6. leetcode笔记:Sort Colors

    一. 题目描写叙述 Given an array with n objects colored red, white or blue, sort them so that objects of the ...

  7. 自编Photoshop简单教程

    由于本科时对图形图像比較感兴趣所以Ps和Ai玩的还算能够.所以无论本科时候还是研究生阶段总是有非常多人让我帮忙处理一些图片.记得工作那一年參与一个大项目时还帮了CRI里员工处理了一些图片项目中也处理了 ...

  8. (MySQL里的数据)通过Sqoop Import HBase 里 和 通过Sqoop Export HBase 里的数据到(MySQL)

    Sqoop 可以与HBase系统结合,实现数据的导入和导出,用户需要在 sqoop-env.sh 中添加HBASE_HOME的环境变量. 具体,见我的如下博客: hadoop2.6.0(单节点)下Sq ...

  9. Android自定义组件系列【12】——非UI线程绘图SurfaceView

    一.SurfaceView的介绍 在前面我们已经会自定义View,使用canvas绘图,但是View的绘图机制存在一些缺陷. 1.View缺乏双缓冲机制. 2.程序必须重绘整个View上显示的图片,比 ...

  10. Linux / Windows应用方案不完全对照表

    Linux/Windows应用方案不完全对照表 650) this.width=650;" border="0" src="http://img1.51cto. ...