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 中文文 ...
随机推荐
- python极简教程08:对象的方法
测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...
- [SWPUCTF 2018]SimplePHP
[SWPUCTF 2018]SimplePHP 知识点 1.PHP反序列化入门之phar 2.反序列化魔术方法 __construct()//当一个对象创建时被调用 __destruct() //当一 ...
- 个人作业2-Java代码实现数据检索并实现可视化
1.bean实体层 package bean; public class Bean { private String title; private String Abstract; private S ...
- How to mount Windows network disk in WSL
Backgroud Mount samba directly in wsl like linux is difficult Password for root@//filesystem.domain/ ...
- POSIX之消息队列
my_semqueue_send.c: #include<stdio.h> #include<errno.h> #include<mqueue.h> #includ ...
- gin中如何自定义验证器
package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding&qu ...
- Windows 下如何查看文件夹被哪个进程所占用
- 使用Hot Chocolate和.NET 6构建GraphQL应用(2) —— 实体相关功能实现
系列导航 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引 需求 在本文中,我们将会准备好用于实现GraphQL接口所依赖的底层数据,为下一篇文章具体实现GraphQL接口做 ...
- Vue3 框架基础随笔 (一)
VUE框架基础部分随笔 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架. Vue可以使用简单的代码实现一个单页面应用. 基本格式 Vue通过模板语法来声明式的将数 ...
- 从服务端生成Excel电子表格(Node.js+SpreadJS)
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通常用于创建网络应用程序.它可以同时处理多个连接,并且不像其他大多数模型那样依赖线程. 对于 Web 开发者来说,从数据库 ...