pdf.js 利用HTML5技术显示pdf内容
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内容相关推荐
- JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JavaScript前端:与PDF.js结合,实现网页PDF内容批量下载 前言 一.PDF.js是什么? 二.PDF.js单个PDF文 ...
- PDF.js实现html页面读取pdf文件内容
项目中遇到要在HTML页面上读取PDF文档的内容,并显示在网页上. pdf.js官网:pdf.js官网 本地附件:pdf.js 一.下载 1.下载至本地 2.创建PDF.js文件夹 并将刚解压的文件放 ...
- 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)
利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能) 参考文章: (1)利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功 ...
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
====================================================== 注:本文源代码点此下载 ================================= ...
- 使用pdf.js在web页面展示pdf文件
最近弄的项目中需要在线展示PDF文件,以前用的是Adobe PDF阅读器直接在浏览器端打开的,这要求客户端必须安装这个软件,若是没有安装就不能在线预览了.为了解决这个问题,最终决定用pdf.js来实现 ...
- html 打印预览 兼容,vue下使用 pdf.js 预览 和 打印 PDF文档 兼容React
我使用前端开发框架是vue,有一个打印PDF文档的需求. 这个需求最开始是交给后台,但是明显不切实际, 因为后台服务器,根本就无法连接打印机. 所以这个预览加打印文档的需求就交到了前端, 开始我有想过 ...
- vue下使用 pdf.js 预览 和 打印 PDF文档 兼容React
我使用前端开发框架是vue,有一个打印PDF文档的需求. 这个需求最开始是交给后台,但是明显不切实际, 因为后台服务器,根本就无法连接打印机. 所以这个预览加打印文档的需求就交到了前端, 开始我有想过 ...
- 判断网页pdf还是html,html5 – 如何知道PDF.JS是否完成渲染?
我使用PDF.JS将pdf页面呈现到不同的画布元素中.我的要求是捕获画布的输出并将其显示为图像.是否有一些事件知道画布中的pdf页面的渲染是否已经完成.因为当我尝试捕获canvas的输出时,它是空白的 ...
- 利用pdfjs在线显示pdf文件
1.下载pdf.js插件:https://gitee.com/liuhaipeng1130/pdfjs 2.创建Vue项目 将下载好的pdf.js插件放在static文下 3.新建一个pdf页面 用' ...
最新文章
- Qt Creator 设置默认编码格式
- AspNetPager7.2的基本使用
- 浅谈JavaScript错误
- STM32的ADC采样与多通道ADC采样
- 主成分分析和因子分析及其在R中的…
- C++学习之路 | PTA乙级—— 1064 朋友数 (20 分)(精简)
- 使用Maven 插件构建docker 镜像和推送仓库
- android简单小游戏开发工具,傻瓜化开发Android小游戏
- 人人开源中invalid Code
- 华为网络技术大赛2017 考后感
- 常见笔顺错误的字_易错汉字笔画顺序 你全都会吗?
- 一、Webservice的概念和原理
- MyBatis条件查询
- linux下XMind创建运行图标
- 手把手教你写一篇价值十万的软文
- 用shapely判断两个图形的包含相交关系
- 电脑蓝屏,报错信息0xc000007b
- 项目一:使用python tkinter模块做简单的计算器
- Win11怎么设置让CPU性能全开?Win11CPU怎么设置高性能模式?
- 旧 Mac、PC 别扔,变身 Chromebook 了解一下
热门文章
- 限流中间件IpRateLimitMiddleware的使用
- aspnetcore 应用 接入Keycloak快速上手指南
- NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?
- GraphQL:简单开开始一个查询
- .NET Core 下使用 gRPC
- 如何做一个懂产品的程序员?
- 一个static和面试官扯了一个小时,舌战加强版
- Sql Server之旅——第十站 简单说说sqlserver的执行计划
- ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记
- .NETCore3.1中的Json互操作最全解读-收藏级