JS plugin of preview PDF for mobile. web/h5/移动端PDF预览手势缩放插件
javascript
`
- 2.创建div
`javascript
`
- 3.依次引入js(需引用本项目的js,不要引用官方的pdf.js,jquery可以引用其它版的)
`javascript
`
- 4.实例化
`javascript
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf"
});
`
#### 二、npm安装方式(适应于vue), react使用方法类似vue(example/react-test是react使用示例)
- 1.安装
`javascript
npm install pdfh5
`
- 2.使用
`javascript
`
- 注意:如果css引用报错的话,按下面的方式引用。
`javascript
import Pdfh5 from "pdfh5";
import "pdfh5/css/pdfh5.css";
`
API接口方法
实例化
- pdfh5实例化的时候传两个参数,selector选择器,options配置项参数,会返回一个pdfh5实例对象,可以用来操作pdf,监听相关事件
`javascript
var pdfh5 = new Pdfh5(selector, options);
`
|参数名称 |类型 |取值 |是否必须 |作用 |
|:---: |:---: |:---: |:---: |:---: |
|selector | String | - | √ |pdfh5的容器选择器 |
|options | Object | - | × |pdfh5的配置项参数 |
options配置项参数列表
- 示例: 配置项参数 pdfurl
`javascript
var pdfh5 = new Pdfh5('#demo', {
pdfurl: "./default.pdf"
});
`
|参数名称 |类型 |取值 |作用 |
|:---: |:---: |:---: |:---: |
|pdfurl | String | - |pdf地址 |
|responseType | String |blob 、 arraybuffer 默认 blob |请求pdf数据格式 |
|URIenable | Boolean |true、false, 默认false | true开启地址栏file参数 |
|data | Array(arraybuffer) | - |pdf文件流 ,与pdfurl二选一(二进制PDF数据。使用类型化数组(Uint8Array)可以提高内存使用率。如果PDF数据是BASE64编码的,请先使用atob()将其转换为二进制字符串。) |
|renderType | String |"canvas"、"svg",默认"canvas" |pdf渲染模式 |
|pageNum | Boolean |true、false, 默认true |是否显示左上角页码 |
|backTop | Boolean |true、false, 默认true |是否显示右下角回到顶部按钮 |
|maxZoom | Number |最大倍数3 |手势缩放最大倍数 |
|scale | Number |最大比例5,默认1.5 |pdf渲染的比例 |
|scrollEnable | Boolean |true、false, 默认true |是否允许pdf滚动 |
|zoomEnable | Boolean |true、false, 默认true |是否允许pdf手势缩放 |
|cMapUrl | String | " |解析pdf时,特殊情况下显示完整字体的cmaps文件夹路径,例如 cMapUrl:"https://unpkg.com/pdfjs-dist@2.0.943/cmaps/" |
|limit | Number | 默认0 |限制pdf加载最大页数 |
|logo | Object |{src:"pdfh5.png",x:10,y:10,width:40,height:40}src水印图片路径(建议使用png透明图片),width水印宽度,height水印高度,以每页pdf左上角为0点,x、y为偏移值。 默认false|给每页pdf添加水印logo(canvas模式下使用) |
|goto | Number | 默认0 |加载pdf跳转到第几页 |
|textLayer | Boolean | true、false, 默认false |是否开启textLayer,可以复制文本(canvas模式下使用)【处于测试阶段,位置偏移严重】 |
|background | Object | {color:"#fff",image:"url('pdfh5.png')",repeat:"no-repeat",position:"left top",size:"40px 40px"},和css的background属性语法相同,默认false |是否开启背景图模式 |
pdf请求示例
1.
`javascript
new Pdfh5('#demo', {
pdfurl: "git.pdf",
// responseType: "blob" // blob arraybuffer
});
`
3. pdf文件流或者buffer已经得到,如何渲染
`javascript
new Pdfh5('#demo', {
data: blob, //blob arraybuffer
});
`
methods 方法列表
- 示例: 是否允许pdf滚动
`javascript
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方法监听所有事件 |
|goto | Number |Number:要跳转的pdf页数 |pdf跳转到第几页(pdf加载完成后使用) |
|download | (String, Function)|String:下载pdf的名称,默认download.pdf,Function:下载完成后的回调|下载pdf |
on方法监听所有事件-事件名列表
- 示例: 监听pdf准备开始渲染,此时可以拿到pdf总页数
`javascript
pdfh5.on("ready", function () {
console.log("总页数:" + this.totalNum)
})
``