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 中文文 ...
随机推荐
- asp.net core 中优雅的进行响应包装
目录 摘要 正常响应/模型验证错误包装 实现按需禁用包装 如何让 Swagger 识别正确的响应包装 禁用默认的模型验证错误包装 使用方法以及自定义返回结构体 SourceCode && ...
- 在变压器厂中使用 ISA-95 应用程序进行调度集成
介绍 在工业批量和连续生产/运营环境中,调度涉及将诸如罐.反应器和其他加工设备之类的资源分配给生产/运营任务.第 4 层生产/运营计划确定要制造什么产品.要制造多少产品以及何时制造.根据设备.物料.人 ...
- 【Maven】maven 插件开发实战
前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的.包括我们日常使用到的类似 install.clean.deploy.compiler...这些命令,其实底层都是一个 ...
- 一文搞定 Windows Terminal 设置与 zsh 安装 (非WSL)
为 Windows Terminal 添加标签页 添加 Anaconda 标签页 在settings.json文件中的list列表中添加设置项: { // Make changes here to t ...
- phpAdmin写webshell的方法
一.常规导入shell的操作 创建数据表导出shell CREATE TABLE `mysql`.`shadow9` (`content` TEXT NOT NULL ); INSE ...
- 《剑指offer》面试题13. 机器人的运动范围
问题描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入 ...
- 《剑指offer》面试题20. 表示数值的字符串
问题描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100"."5e2"."-123"."3.1 ...
- 设置图片DPI
//image 可以先转换为 bitmap Bitmap bmp = new Bitmap(width, height); bmp.SetResolution(300, 300);
- 手把手教你丨小熊派移植华为 LiteOS-M
摘要:本文详细讲解如何移植 LiteOS 到小熊派. 本文分享自华为云社区<小熊派移植华为 LiteOS-M(基于MDK)>,作者: JeckXu666. 前言 之前使用小熊派实现了鸿蒙动 ...
- 什么是以特性为核心的持续交付|阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...