pdf.js 是一个技术原型主要用于在 HTML5 平台上展示 PDF 文档,无需任何本地技术支持。

在线演示地址:http://mozilla.github.com/pdf.js/web/viewer.html

PDF.js可在官网下载  地址:http://mozilla.github.io/pdf.js/

解压后得到的build目录就是PDF.js的核心文件,直接引入里面的pdf.js文件就可以使用。

html 代码示例:

<div class="pdf-view"><h1>练习</h1>     <canvas id="the-canvas"></canvas>  <div class="page">  <button id="prev">上一页</button>  <span>页数: <span id="page_num"></span> / <span id="page_count"></span></span>  <button id="next">下一页</button>  </div>  </div>

<script src="../../bulid/pdf.js"></script>  //引入pdf.js文件

pdf的预览就是通过上面的canvas展现出来的,一般移动端页面都将用户缩放禁止了,但如果在移动端页面上显示有点模糊的话,可以允许用户缩放,而宽高大小等样式根据项目要求调整吧。

JS代码示例:

var url = './练习.pdf';  //pdf文件的地址PDFJS.workerSrc = '../../build/pdf.worker.js';   //引入主要文件var pdfDoc = null,  pageNum = 1,  pageRendering = false,  pageNumPending = null,  scale = 0.8,  canvas = document.getElementById('the-canvas'),  ctx = canvas.getContext('2d');  function renderPage(num) {  pageRendering = true;  pdfDoc.getPage(num).then(function(page) {  var viewport = page.getViewport(scale);  canvas.height = viewport.height;  canvas.width = viewport.width;  var renderContext = {  canvasContext: ctx,  viewport: viewport  };  var renderTask = page.render(renderContext);  renderTask.promise.then(function() {  pageRendering = false;  if (pageNumPending !== null) {  // New page rendering is pending
                renderPage(pageNumPending);  pageNumPending = null;  }  });  });  document.getElementById('page_num').textContent = pageNum;  }  function queueRenderPage(num) {  if (pageRendering) {  pageNumPending = num;  } else {  renderPage(num);  }  }  function onPrevPage() {  if (pageNum <= 1) {  return;  }  pageNum--;  queueRenderPage(pageNum);  }  document.getElementById('prev').addEventListener('click', onPrevPage);  function onNextPage() {  if (pageNum >= pdfDoc.numPages) {  return;  }  pageNum++;  queueRenderPage(pageNum);  }  document.getElementById('next').addEventListener('click', onNextPage);  PDFJS.getDocument(url).then(function(pdfDoc_) {  pdfDoc = pdfDoc_;  document.getElementById('page_count').textContent = pdfDoc.numPages;  renderPage(pageNum);  });  

参考:http://blog.csdn.net/li_cheng_liang/article/details/75332938

转载于:https://www.cnblogs.com/haqiao/p/8510269.html

使用pdf.js在移动端预览pdf文档相关推荐

  1. pdf.js使用(在线预览pdf文件)

    最近公司需要pdf在线预览,于是找到pdf.js这个插件 , 好处就在于 pc端和移动端 不需要花过多的精力去调. 1:需要到官网下载源码:https://mozilla.github.io/pdf. ...

  2. 移动端h5页面预览word文档

    在web端预览word文档,可以使用iframe来实现.但由于兼容性问题,并不能使用iframe在安卓和ios上预览文件 经测试发现,mammoth插件可以实现该功能 <!DOCTYPE htm ...

  3. h5,移动端预览pdf文件,使用pdfh5插件

    苹果机 是可以直接打开一个 pdf的网络路径进行预览的  问题是 安卓直接打开的话  就跳转到下载页面 或者那个大哥可以找一个h5 页面可以预览word文档 (其实吧 也可以  只要你愿意花钱 还是能 ...

  4. 加载js文件,在线预览pdf文档

    加载js文件,在线预览pdf文档 效果演示 环境要求 JS文件下载 Jsp页面导入js文件 jquery.media.js源码 效果演示 首先,先展示效果图 环境要求 Tomcat8.5 [注意]:T ...

  5. html做在线预览pdf文件,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件! 翻来覆去找到两种办法 ,最后采用了jquery.media.js插件 方式一 将pdf ...

  6. html 在线预览pdf功能,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件!javascript 翻来覆去找到两种办法 ,最后采用了jquery.media.js插 ...

  7. Springboot 超简单实现在线预览,Word文档 doc、xlsx、pdf、txt等

    前言 PDF.TXT 只要资源可访问,根本就不需要进行任何处理,直接访问查看就完事了. 也是因为这个PDF可以直接查看(现在浏览器基本支持了),那么我们实现Word文档在线预览,其实也是 把WORD文 ...

  8. Android实现在线预览office文档(Word,Pdf,excel,PPT.txt等格式)

    1.概述 我们都知道,Android原生并没有提供浏览office文档格式的相关Api,在安卓端想要实现在线预览office文档的功能显然很是复杂,我们手机安装QQ浏览器时,在手机打开office文档 ...

  9. 在线预览word文档

    在线预览word文档 在线预览word文档 Java 使用wps将word文件转换pdf文件 转成PDF 在线预览word(转成pdf)前端展示 欢迎来提更好的意见 在线预览word文档 昨天下午组长 ...

最新文章

  1. 1亿以内素数的个数_ghpython_素数
  2. SAP RETAIL MM42里可以顺便维护一下Source List
  3. 牛客题霸 NC22 合并两个有序的数组
  4. 深入理解java垃圾回收机制
  5. sharepoint站点移植方案
  6. 缓存击穿和缓存穿透的区别_后端RoadMap011:缓存穿透、缓存击穿、缓存雪崩区别和解决方案...
  7. 联想 键盘 fn linux,开发者提交补丁,Linux 5.10 或支持联想 PC 键盘快捷键
  8. android udt协议,接口和软件包  |  Android 开源项目  |  Android Open Source Project
  9. 设计模式13_享元模式
  10. 3个开源TTS(五)eSpeak1.06的源码调试分析
  11. WP应用程序磁贴设置
  12. python fun函数输入某年某月_Python编程实现输入某年某月某日计算出这一天是该年第几天的方法...
  13. 由对称引起的空间结构耦合效应
  14. ros服务器打开网页变慢了,解决ros 在计算机没有限速情况下,有几个网站打开很慢,或者打不开。...
  15. drf框架图片路径问题
  16. Java和部门管理的那些事情
  17. lua小技巧(二)——lua全局变量的检测
  18. aab c式_aab表示的四字成语大全
  19. VNC CentOS Linux下VNC Server远程桌面配置详解
  20. 蚂蚁金服Java暑期面试

热门文章

  1. Netty之四种常用 IO 模型
  2. linux pxe安装视频,Linux—图解PXE实现全自动安装系统(1)
  3. java多线程图解_java多线程实例图解讲解
  4. 三个常用c++11特性
  5. 缓存服务的更新策略有哪些?
  6. php代码编写直接插入排序算法,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析...
  7. python 标量_python:将标量视为一个元素列表
  8. 【Flink】Flink Heartbeat of TaskManager with id timed out.
  9. 【kafka】kafka 消费组 加入 离开 reblance 案例
  10. 【ElasticSearch】Es 缓存