Mozilla实验室最近在github上开源了一款js库pdf.js,用来读取PDF文件。

http://mozilla.github.io/pdf.js/

Using base64 encoded PDF

HTML页面内容

<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script><h1>PDF.js 'Hello, base64!' example</h1><canvas id="the-canvas"></canvas>

JavaScript代码

// atob() is used to convert base64 encoded PDF to binary-like data.
// (See also https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/
// Base64_encoding_and_decoding.)
var pdfData = atob('JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwog' +'IC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAv' +'TWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0K' +'Pj4KZW5kb2JqCgozIDAgb2JqCjw8CiAgL1R5cGUgL1BhZ2UKICAvUGFyZW50IDIgMCBSCiAg' +'L1Jlc291cmNlcyA8PAogICAgL0ZvbnQgPDwKICAgICAgL0YxIDQgMCBSIAogICAgPj4KICA+' +'PgogIC9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKICAvVHlwZSAvRm9u' +'dAogIC9TdWJ0eXBlIC9UeXBlMQogIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KPj4KZW5kb2Jq' +'Cgo1IDAgb2JqICAlIHBhZ2UgY29udGVudAo8PAogIC9MZW5ndGggNDQKPj4Kc3RyZWFtCkJU' +'CjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8sIHdvcmxkISkgVGoKRVQKZW5kc3RyZWFtCmVu' +'ZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4g' +'CjAwMDAwMDAwNzkgMDAwMDAgbiAKMDAwMDAwMDE3MyAwMDAwMCBuIAowMDAwMDAwMzAxIDAw' +'MDAwIG4gCjAwMDAwMDAzODAgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9TaXplIDYKICAvUm9v' +'dCAxIDAgUgo+PgpzdGFydHhyZWYKNDkyCiUlRU9G');// Disable workers to avoid yet another cross-origin issue (workers need
// the URL of the script to be loaded, and dynamically loading a cross-origin
// script does not work).
// PDFJS.disableWorker = true;// The workerSrc property shall be specified.
PDFJS.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';// Using DocumentInitParameters object to load binary data.
var loadingTask = PDFJS.getDocument({data: pdfData});
loadingTask.promise.then(function(pdf) {console.log('PDF loaded');// Fetch the first pagevar pageNumber = 1;pdf.getPage(pageNumber).then(function(page) {console.log('Page loaded');var scale = 1.5;var viewport = page.getViewport(scale);// Prepare canvas using PDF page dimensionsvar canvas = document.getElementById('the-canvas');var context = canvas.getContext('2d');canvas.height = viewport.height;canvas.width = viewport.width;// Render PDF page into canvas contextvar renderContext = {canvasContext: context,viewport: viewport};var renderTask = page.render(renderContext);renderTask.then(function () {console.log('Page rendered');});});
}, function (reason) {// PDF loading errorconsole.error(reason);
});

pdf.js 利用HTML5技术显示pdf内容相关推荐

  1. JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载 前言 一.PDF.js是什么? 二.PDF.js单个PDF文 ...

  2. PDF.js实现html页面读取pdf文件内容

    项目中遇到要在HTML页面上读取PDF文档的内容,并显示在网页上. pdf.js官网:pdf.js官网 本地附件:pdf.js 一.下载 1.下载至本地 2.创建PDF.js文件夹 并将刚解压的文件放 ...

  3. 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)

    利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能) 参考文章: (1)利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功 ...

  4. Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度

    ====================================================== 注:本文源代码点此下载 ================================= ...

  5. 使用pdf.js在web页面展示pdf文件

    最近弄的项目中需要在线展示PDF文件,以前用的是Adobe PDF阅读器直接在浏览器端打开的,这要求客户端必须安装这个软件,若是没有安装就不能在线预览了.为了解决这个问题,最终决定用pdf.js来实现 ...

  6. html 打印预览 兼容,vue下使用 pdf.js 预览 和 打印 PDF文档 兼容React

    我使用前端开发框架是vue,有一个打印PDF文档的需求. 这个需求最开始是交给后台,但是明显不切实际, 因为后台服务器,根本就无法连接打印机. 所以这个预览加打印文档的需求就交到了前端, 开始我有想过 ...

  7. vue下使用 pdf.js 预览 和 打印 PDF文档 兼容React

    我使用前端开发框架是vue,有一个打印PDF文档的需求. 这个需求最开始是交给后台,但是明显不切实际, 因为后台服务器,根本就无法连接打印机. 所以这个预览加打印文档的需求就交到了前端, 开始我有想过 ...

  8. 判断网页pdf还是html,html5 – 如何知道PDF.JS是否完成渲染?

    我使用PDF.JS将pdf页面呈现到不同的画布元素中.我的要求是捕获画布的输出并将其显示为图像.是否有一些事件知道画布中的pdf页面的渲染是否已经完成.因为当我尝试捕获canvas的输出时,它是空白的 ...

  9. 利用pdfjs在线显示pdf文件

    1.下载pdf.js插件:https://gitee.com/liuhaipeng1130/pdfjs 2.创建Vue项目 将下载好的pdf.js插件放在static文下 3.新建一个pdf页面 用' ...

最新文章

  1. Qt Creator 设置默认编码格式
  2. AspNetPager7.2的基本使用
  3. 浅谈JavaScript错误
  4. STM32的ADC采样与多通道ADC采样
  5. 主成分分析和因子分析及其在R中的…
  6. C++学习之路 | PTA乙级—— 1064 朋友数 (20 分)(精简)
  7. 使用Maven 插件构建docker 镜像和推送仓库
  8. android简单小游戏开发工具,傻瓜化开发Android小游戏
  9. 人人开源中invalid Code
  10. 华为网络技术大赛2017 考后感
  11. 常见笔顺错误的字_易错汉字笔画顺序 你全都会吗?
  12. 一、Webservice的概念和原理
  13. MyBatis条件查询
  14. linux下XMind创建运行图标
  15. 手把手教你写一篇价值十万的软文
  16. 用shapely判断两个图形的包含相交关系
  17. 电脑蓝屏,报错信息0xc000007b
  18. 项目一:使用python tkinter模块做简单的计算器
  19. Win11怎么设置让CPU性能全开?Win11CPU怎么设置高性能模式?
  20. 旧 Mac、PC 别扔,变身 Chromebook 了解一下

热门文章

  1. 限流中间件IpRateLimitMiddleware的使用
  2. aspnetcore 应用 接入Keycloak快速上手指南
  3. NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?
  4. GraphQL:简单开开始一个查询
  5. .NET Core 下使用 gRPC
  6. 如何做一个懂产品的程序员?
  7. 一个static和面试官扯了一个小时,舌战加强版
  8. Sql Server之旅——第十站 简单说说sqlserver的执行计划
  9. ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记
  10. .NETCore3.1中的Json互操作最全解读-收藏级