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 中文文 ...
随机推荐
- gin中使用路由组
package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() / ...
- 不难懂-----type=number 去掉加减按钮并禁止鼠标滚轮滚动
<style> /* 去除webkit中input的type="number"时出现的上下图标 */ input::-webkit-outer-spin-button, ...
- 函数的参数python教程
一:函数 什么是函数? 函数就类似于工具 提前定义之后可以反复使用 代码冗余 结构清晰 修改繁杂等问题 二:函数的语法结构 def 函数名(参数1,参数2) '''函数注释''' 函数体代码 retu ...
- mybatis 原生写法创建项目
一.创建全局文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuratio ...
- Redis集群安装详细步骤
环境: Centos7 redis3.0 三台虚拟机主机名分别为 master node1 node2 如果单机的时候设置过密码最好把密码去掉,避免位置的错误. 拍个快照方便恢复. 1.创 ...
- python编写购物车
上次的学习又没有坚持下来,工作忙的不可开交,但我反思了一下还是自己没有下定决心好好学习,所以这次为期3个月的学习计划开始了,下面是这次学习后重新编写的购物车初版代码. 1 # 功能要求: 2 # 要求 ...
- 将一个读取流转换成bitmap对象
将一个读取流转换成bitmap对象: BitmapFactory:可以将文件,读取流,字节数组转换成一个Bitmap对象. Bitmap bitmap = Bitma ...
- 在TCP文件传输中如何判断java流的末尾
感谢前辈们的解答:https://bbs.csdn.net/topics/280085530 问题描述: 服务端向客户端发送数据流,服务端发完了数据不关闭流. 我在客户端读流,我无法读到-1,所以无法 ...
- curl 查看接口的网络分段响应时间
示例如下 curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_tota ...
- Java线程--ForkJoinPool使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871099.html Java线程--ForkJoinPool使用 简单解释下: Fork是 ...