最近在做后台管理类的系统,需要在web页面阅读pdf文件。发现一个很好用的插件 pdf.js,简单的介绍一下

官方文档地址:http://mozilla.github.io/pdf.js/
在线演示地址:http://mozilla.github.com/pdf.js/web/viewer.html

介绍一下官网的例子

  1. 页面引入pdf.js
  2. 使用PDFJS.getDocument(‘helloworld.pdf’)方式加载要打开的PDF文件
  3. 通过Promise的then方式处理后续的方法
PDFJS.getDocument('helloworld.pdf')
.then(function(pdf){//you can now use *pdf* here
});
pdf.getPage(1).then(function(page){// you can now use *page* here//;加载PDF的第一页})
  1. 通过h5的canvas进行展示。
var scale = 1.5;  //缩放比例//获取窗口大小
var viewport = page.getViewport(scale); //获取canvas对象
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;  var renderContext = {  canvasContext: context,  viewport: viewport
};
page.render(renderContext);

下面完整的例子:

页面部分:

<h1>PDF.js Previous/Next example</h1>  <div>  <button id="prev">Previous</button>  <button id="next">Next</button>  <span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
</div>  <canvas id="the-canvas"></canvas>

js部分:


//引入pdf.js之后
var url = '//cdn.mozilla.net/pdfjs/helloworld.pdf';
//加载核心文件
PDFJS.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';  var loadingTask = PDFJS.getDocument(url);
loadingTask.promise.then(function(pdf) {  console.log('PDF loaded');  var pageNumber = 1;  pdf.getPage(pageNumber).then(function(page) {  console.log('Page loaded');  var scale = 1.5;  var viewport = page.getViewport(scale);  var canvas = document.getElementById('the-canvas');  var context = canvas.getContext('2d');  canvas.height = viewport.height;  canvas.width = viewport.width;  var renderContext = {  canvasContext: context,  viewport: viewport  };  var renderTask = page.render(renderContext);  renderTask.then(function () {  console.log('Page rendered');  });  });
}, function (reason) {  console.error(reason);
});

具体使用方式可以查阅官方文档,demo写的很详细。

如何在项目中使用pdf.js查看PDF文件相关推荐

  1. Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能

    Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能 需求:在pdf中鼠标滑动选中一段文字,将选中文字展示到input框中(pdf在iframe中) 完成效果: 关于pdf的引用:我是直接 ...

  2. 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建

    摘要: 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建 刚开始打算进行前后端分离开发,后来发现在使用JSP或者Freemarker做动态页面时,想发挥这些自动化构建工具 ...

  3. html 提取pdf,使用PDF.js从PDF中提取文本(2019)

    正如标题所说,我正在尝试使用由Mozilla维护的PDF.js从PDF中提取文本.我知道前面关于stackoverflow的问题,但我不知道从哪里开始. 我试着跟着这个 article 这件事我需要帮 ...

  4. vue 项目中使用three.js实现vr360度全景图片预览

    vue 项目中使用three.js实现vr360度全景图片预览 当前demo使用的three.js为0.115.0版本 项目中安装three npm install three 安装完成再组件如下导入 ...

  5. 在ts项目中接入live2d-widget.js , 在网页中展示二次元老婆

    原文链接: 在ts项目中接入live2d-widget.js , 在网页中展示二次元老婆 上一篇: tailwindcss 简单场景和官方案例 下一篇: git Submodule 将别人的模型文件通 ...

  6. react项目中使用three.js(解决纹理贴图路径问题)

    一,本文解决如下问题 1. 在react脚手架的项目中使用three.js 2. three.js在react中使用动态的纹理贴图遇到的路径问题 3. this.指向的丢失问题 二,在项目中使用thr ...

  7. Vue3 + PDF.js 实现 PDF 预览

    文章目录 1 前言 2 PDF 预览测试 2.1 下载 PDF.js 2.2 window.open 直接打开 2.3 弹框形式打开 3 修改配置项 3.1 修改主题色为暗色系 3.2 修改默认语言为 ...

  8. 【iframe结合pdf.js实现pdf的预览/下载及打印功能】

    iframe结合pdf.js实现pdf的预览/下载及打印 1.[下载pdf.js](http://mozilla.github.io/pdf.js/getting_started/#download) ...

  9. vue里使用pdf.js实现pdf文件的预览功能

    引言:经过上一篇文章的测试,发现了以下问题: 兼容性不好 不适用多语言场景(不能共用一套) 会出现跨域问题 难于监控阅读状态 不能控制下载状态 在基于vue开发的移动项目中,如果预览的pdf数量不是很 ...

最新文章

  1. input[type=checkbox] ; input[type=radio] 改变默认样式
  2. VS2008 + Silverlight初步学习
  3. 进程间通信——Queue
  4. xshell6左侧导航显示_【iOS12人机交互指南】7.1-导航栏
  5. vscode 多行 行尾_vscode 常用快捷键
  6. Django之模板层
  7. 计算机体系结构五大部分组成
  8. 原生JavaScript使用和jQuery使用
  9. 在Centos操作系统下安装mysql8.0
  10. 基本矩阵F和本质矩阵E的详细推导
  11. sql server在指定模式下创建表
  12. oracle数据库 同义词读写操作,Oracle数据库之同义词(SYNONYM)使用
  13. [KALI系列第四章]进行ARP断网攻击,包含安装方法
  14. obd协议 混动车_OBD协议介绍
  15. Feature系列-GIST
  16. Xshell远程操作liunx图形化桌面
  17. B. Nezzar and Lucky Number
  18. linux命令察看图片
  19. 联想台式计算机装系统,联想台式电脑用u盘怎么重装win7系统教程
  20. 【PyMuPDF和pdf2image】Python将PDF转成图片

热门文章

  1. 计算机如何安装cpu风扇,CPU风扇安装过程图解
  2. 三星4521f打印,复印动作慢要等很久
  3. 构建Vue前端组件库
  4. python中如何进行温度转换_python中温度单位转换的实例方法
  5. 经验模态分解python_如何提高希尔伯特黄变换中经验模态分解(EMD)的速度?
  6. 工程监测多通道振弦模拟信号采集仪VTN的四种工作模式
  7. Android 养成记-1.5 二维码生成+添加logo+识别+扫码
  8. 伽马校正笔记(Gamma Correction)
  9. 痞子衡嵌入式:再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率
  10. php判断股票类别,获取股票的行业分类数据