html页面预览pdf文件使用插件pdfh5.js
html预览pdf文件需要依赖pdf.js
移动端适配需要pdfh5.js
记录移动端适配pdfh5.js的用发
在线预览: https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf
- 引入css
<link rel="stylesheet" href="css/pdfh5.css" /> - 创建div
<div id="demo"></div> - 依次引入js(需引用本项目的js,不要引用官方的pdf.js,jquery可以引用其它版的)
<script src="js/pdf.js" type="text/javascript" charset="utf-8"></script>
<script src="js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
- 实例化:
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf"
});
- 实例化参数
var pdfh5 = new Pdfh5(selector, options);
| 参数名称 | 类型 | 取值 | 是否必须 | 作用 |
|---|---|---|---|---|
| selector | {String} | - | √ | pdfh5的容器选择器 |
| options | {Object} | - | × | pdfh5的配置项参数 |
- options配置项参数列表
- 示例: 配置项参数 lazy:true 开启懒加载,默认是false,不开启懒加载
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf",
lazy:true
});
| 参数名称 | 类型 | 取值 | 作用 |
|---|---|---|---|
| pdfurl | {String} | - | pdf地址 |
| URIenable | {Boolean} | true、false,默认false | true开启地址栏file参数 |
| data | {String(blob) | - | pdf文件流 ,与pdfurl二选一 |
| renderType | {String} | "canvas"、"svg",默认"canvas" | pdf渲染模式 |
| lazy | {Boolean} | true、false, | 默认false |
| maxZoom | {Number} | 默认3 | 手势缩放最大倍数 |
| scrollEnable | {Boolean} | true、false, 默认true | 是否允许pdf滚动 |
| zoomEnable | {Boolean} | true、false, 默认true | 是否允许pdf手势缩放 |
| cMapUrl | {String} | 默认"https://www.gjtool.cn/cmaps/" | 解析pdf时,特殊情况下显示完整字体的cmaps文件夹路径,例如 cMapUrl:"https://unpkg.com/ |
| limit | {Number} | 默认0 | 限制pdf加载最大页数 |
- pdf文件流请求示例(以jq ajax为例)
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var pdfh5 = new Pdfh5('#demo', {
data: data
});
}
});
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var rawLength = data.length;
var array = new Uint8Array(new ArrayBuffer(rawLength));
for (i = 0; i < rawLength; i++) {
array[i] = data.charCodeAt(i) & 0xff;
}
var pdfh5 = new Pdfh5('#demo', {
data: array
});
}
});
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var rawLength = data.length;
var array = [];
for (i = 0; i < rawLength; i++) {
array.push(data.charCodeAt(i) & 0xff);
}
var pdfh5 = new Pdfh5('#demo', {
data: array
});
}
});
- methods 方法列表
- 实例 是否允许pdf滚动
pdfh5.scrollEnable(true) //允许pdf滚动
pdfh5.scrollEnable(false) //不允许pdf滚动
| 参数名称 | 类型 | 取值 | 作用 |
|---|---|---|---|
| scrollEnable | {Boolean} | true、false, 默认true | 是否允许pdf滚动(需要在pdf加载完成后使用) |
| zoomEnable | {Boolean} | true、false, 默认true | 是否允许pdf手势缩放(需要在pdf加载完成后使用) |
| show | {Function} | 带一个回调函数参数 | pdfh5显示 |
| hide | {Function} | 带一个回调函数参数 | pdfh5隐藏 |
| reset | {Function} | 带一个回调函数参数 | pdfh5还原 |
| destroy | {Function} | 带一个回调函数参数 | pdfh5销毁 |
| on | {String, Function} | String:监听的事件名,Function:监听的事件回调 | on方法监听所有事件 |
- on方法监听所有事件-事件名列表
- 示例: 监听pdf准备开始渲染,此时可以拿到pdf总页数
pdfh5.on("ready", function () {
console.log("总页数:" + this.totalNum)
})
| 参数名称 | 回调 | 作用 |
|---|---|---|
| init | {Function} | 监听pdfh5开始初始化 |
| ready | {Function} | 监听pdf准备开始渲染,此时可以拿到pdf总页数 |
| error | {Function(msg,time))} | 监听加载失败,msg信息,time耗时 |
| success | {Function(msg,time))} | 监听pdf渲染成功,msg信息,time耗时 |
| complete | {Function(status, msg, time)} | 监听pdf加载完成事件,加载失败、渲染成功都会触发。status有两种状态success和error |
| render | {Function(currentNum, time, currentPageDom)} | 监听pdf渲染过程,currentPageDom当前加载的pdf的dom,currentNum当前加载的pdf页数, |
| zoom | {Function(scale)} | 监听pdf缩放,scale缩放比例 |
| scroll | {Function(scrollTop)} | 监听pdf滚动,scrollTop滚动条高度 |
| backTop | {Function} | 监听回到顶部按钮的点击事件回调 |
| zoomEnable | {Function(flag)} | 监听允许缩放,flag:true,false |
| scrollEnable | {Function(flag)} | 监听允许滚动,flag:true,false |
| show | {Function} | 监听pdfh5显示 |
| hide | {Function} | 监听pdfh5隐藏 |
| reset | {Function} | 监听pdfh5还原 |
| destroy | {Function} | 监听pdfh5销毁 |
html预览pdf文件需要依赖pdf.js
移动端适配需要pdfh5.js
记录移动端适配pdfh5.js的用发
在线预览: https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf
- 引入css
<link rel="stylesheet" href="css/pdfh5.css" /> - 创建div
<div id="demo"></div> - 依次引入js(需引用本项目的js,不要引用官方的pdf.js,jquery可以引用其它版的)
<script src="js/pdf.js" type="text/javascript" charset="utf-8"></script>
<script src="js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
- 实例化:
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf"
});
- 实例化参数
var pdfh5 = new Pdfh5(selector, options);
| 参数名称 | 类型 | 取值 | 是否必须 | 作用 |
|---|---|---|---|---|
| selector | {String} | - | √ | pdfh5的容器选择器 |
| options | {Object} | - | × | pdfh5的配置项参数 |
- options配置项参数列表
- 示例: 配置项参数 lazy:true 开启懒加载,默认是false,不开启懒加载
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf",
lazy:true
});
| 参数名称 | 类型 | 取值 | 作用 |
|---|---|---|---|
| pdfurl | {String} | - | pdf地址 |
| URIenable | {Boolean} | true、false,默认false | true开启地址栏file参数 |
| data | {String(blob) | - | pdf文件流 ,与pdfurl二选一 |
| renderType | {String} | "canvas"、"svg",默认"canvas" | pdf渲染模式 |
| lazy | {Boolean} | true、false, | 默认false |
| maxZoom | {Number} | 默认3 | 手势缩放最大倍数 |
| scrollEnable | {Boolean} | true、false, 默认true | 是否允许pdf滚动 |
| zoomEnable | {Boolean} | true、false, 默认true | 是否允许pdf手势缩放 |
| cMapUrl | {String} | 默认"https://www.gjtool.cn/cmaps/" | 解析pdf时,特殊情况下显示完整字体的cmaps文件夹路径,例如 cMapUrl:"https://unpkg.com/ |
| limit | {Number} | 默认0 | 限制pdf加载最大页数 |
- pdf文件流请求示例(以jq ajax为例)
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var pdfh5 = new Pdfh5('#demo', {
data: data
});
}
});
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var rawLength = data.length;
var array = new Uint8Array(new ArrayBuffer(rawLength));
for (i = 0; i < rawLength; i++) {
array[i] = data.charCodeAt(i) & 0xff;
}
var pdfh5 = new Pdfh5('#demo', {
data: array
});
}
});
$.ajax({
url: "https://gjtool.cn/pdfh5/git.pdf", //假设这是pdf文件流的请求接口
type: "get",
mimeType: 'text/plain; charset=x-user-defined',//jq ajax请求文件流的方式
success: function (data) {
var rawLength = data.length;
var array = [];
for (i = 0; i < rawLength; i++) {
array.push(data.charCodeAt(i) & 0xff);
}
var pdfh5 = new Pdfh5('#demo', {
data: array
});
}
});
- methods 方法列表
- 实例 是否允许pdf滚动
pdfh5.scrollEnable(true) //允许pdf滚动
pdfh5.scrollEnable(false) //不允许pdf滚动
| 参数名称 | 类型 | 取值 | 作用 |
|---|---|---|---|
| scrollEnable | {Boolean} | true、false, 默认true | 是否允许pdf滚动(需要在pdf加载完成后使用) |
| zoomEnable | {Boolean} | true、false, 默认true | 是否允许pdf手势缩放(需要在pdf加载完成后使用) |
| show | {Function} | 带一个回调函数参数 | pdfh5显示 |
| hide | {Function} | 带一个回调函数参数 | pdfh5隐藏 |
| reset | {Function} | 带一个回调函数参数 | pdfh5还原 |
| destroy | {Function} | 带一个回调函数参数 | pdfh5销毁 |
| on | {String, Function} | String:监听的事件名,Function:监听的事件回调 | on方法监听所有事件 |
- on方法监听所有事件-事件名列表
- 示例: 监听pdf准备开始渲染,此时可以拿到pdf总页数
pdfh5.on("ready", function () {
console.log("总页数:" + this.totalNum)
})
| 参数名称 | 回调 | 作用 |
|---|---|---|
| init | {Function} | 监听pdfh5开始初始化 |
| ready | {Function} | 监听pdf准备开始渲染,此时可以拿到pdf总页数 |
| error | {Function(msg,time))} | 监听加载失败,msg信息,time耗时 |
| success | {Function(msg,time))} | 监听pdf渲染成功,msg信息,time耗时 |
| complete | {Function(status, msg, time)} | 监听pdf加载完成事件,加载失败、渲染成功都会触发。status有两种状态success和error |
| render | {Function(currentNum, time, currentPageDom)} | 监听pdf渲染过程,currentPageDom当前加载的pdf的dom,currentNum当前加载的pdf页数, |
| zoom | {Function(scale)} | 监听pdf缩放,scale缩放比例 |
| scroll | {Function(scrollTop)} | 监听pdf滚动,scrollTop滚动条高度 |
| backTop | {Function} | 监听回到顶部按钮的点击事件回调 |
| zoomEnable | {Function(flag)} | 监听允许缩放,flag:true,false |
| scrollEnable | {Function(flag)} | 监听允许滚动,flag:true,false |
| show | {Function} | 监听pdfh5显示 |
| hide | {Function} | 监听pdfh5隐藏 |
| reset | {Function} | 监听pdfh5还原 |
| destroy | {Function} | 监听pdfh5销毁 |
| ------------恢复内容结束------------ |
html页面预览pdf文件使用插件pdfh5.js的更多相关文章
- 使用pdfjs插件在线预览PDF文件
前言 本文介绍在html中使用 pdfjs插件在线预览PDF文件的方法. 实现步骤 下载 pdfjs 并引入项目中 到PDFJS官网 http://mozilla.github.io/pdf.js/g ...
- 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)
1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...
- 用pdf.js实现在移动端在线预览pdf文件
用pdf.js实现在移动端在线预览pdf文件1.下载pdf.js 官网地址:https://mozilla.github.io/pdf.js/ 2.配置 下载下来的文件包,就是一个demo ...
- fis3+vue+pdf.js制作预览PDF文件或其他
人生第一篇博客,的确有点紧张,但有些许兴奋,因为这对于我来说应该是一个好的开始,以此励志在技术的道路上越走越远. 看过了多多少少的技术博客,给自己带来了很多技术上的收获,也因此在想什么时候自己也可以赠 ...
- 前端使用pdf.js预览pdf文件
现在的浏览器基本都支持直接把pdf文件拖到浏览器就可以打开了,不用安装额外的插件.但是不同的浏览器显示的页面不一样.如果我们想在网页上统一预览pdf怎样实现呢? Mozilla开源了一个插件pdf.j ...
- 前端使用pdf.js预览pdf文件,超级简单
现在的浏览器基本都支持直接把pdf文件拖到浏览器就可以打开了,不用安装额外的插件.但是不同的浏览器显示的页面不一样.如果我们想在网页上统一预览pdf怎样实现呢? Mozilla开源了一个插件pdf.j ...
- 网页嵌入pdf、在线预览pdf工具及插件(转)
摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如下: 代码片段1: 1 <object ty ...
- ASP.NET MVC 项目直接预览PDF文件
背景及需求 项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览. 实现过程 1.第一版实现代码: HTML内容 @{ Layout = null; } <!DO ...
- HTML页面预览表格文件内容
背景简介 在将一个表格文件上传到服务器上之前,JS读取表格文件并将文件内容输出到页面中 vue项目 第三方 exceljs 安装 npm install exceljs 插件使用 github 中文文 ...
随机推荐
- 《剑指offer》面试题10- I. 斐波那契数列
问题描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - ...
- docker安装、下载镜像、容器的基本操作
文章目录 一.docker安装与基本使用 1.docker的安装.从远程仓库下载镜像 2.配置docker国内源 二.创建容器 1.create i.创建容器 ii.进入容器 iii.启动容器 2.r ...
- 【记录一个问题】thinkpad x1笔记本,安装ubuntu 16后,拔掉U盘,总是启动到windows,无法启动到ubuntu
如题 昨天使用ubuntu 18没有这个问题 ============================= 12:38 1.安装完成出现重启后,一定要拔掉U盘 2.BIOS里面的security boo ...
- X架构键盘选购指南
X架构键盘 联想 JME8002(未知) JME7597(推荐) 据说是ThinkPAD键盘的血统. Thinkapad 小红点键盘,据说腿撑容易坏 明基 明基精钢侠 海湾海贝(键程长,不累手,但不易 ...
- manjaro20软件商店无法链接下载
软件商店如果无法链接下载 解决方案1 可以使用terminal慢慢下载,.bashrc中配置代理 如果依然不行,检查网络设置代理是否为自动或者手动设置正确. 解决方案2 检查是否未设置中国社区源或者重 ...
- 淘系工程师讲解的使用Spring特性优雅书写业务代码
使用Spring特性优雅书写业务代码 大家在日常业务开发工作中相信多多少少遇到过下面这样的几个场景: 当某一个特定事件或动作发生以后,需要执行很多联动动作,如果串行去执行的话太耗时,如果引入消息中 ...
- centos6下php53升级为php7
1.查看版本 [root@web-1 blog]# php -v No log handling enabled - turning on stderr logging Created directo ...
- linux实时监控并实时备份数据(rsync)
目录 一:rsync实时监控备份流程 1.安装rsync(服务端 与 客服端)守护进程模式 2.修改配置文件(服务端) 3.解析配置内容 4.创建系统用户 5.创建密码文件 6.授权(必须授权为600 ...
- linux中sort命令全面解析
目录 一:sort命令作用 二:sort格式 1.sort参数 2.参数解析 sort命令简介 Linux sort 命令用于将文本文件内容加以排序. sort 可针对文本文件的内容,以行为单位来排序 ...
- RMAN-20201: datafile not found in the recovery catalog
oracle恢复报错如下: Recovery Manager: Release 10.2.0.4.0 - Production on Fri Aug 28 14:31:31 2015 Copyrigh ...