html頁面預覽pdf文件使用插件pdfh5.js

html預覽pdf文件需要依賴pdf.js

移動端適配需要pdfh5.js

記錄移動端適配pdfh5.js的用發


在線預覽: //www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/git.pdf


  1. 引入css
    <link rel="stylesheet" href="css/pdfh5.css" />
  2. 創建div
    <div id="demo"></div>
  3. 依次引入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>
  1. 實例化:
var pdfh5 = new Pdfh5('#demo', {
  pdfurl: "./default.pdf"
});
  1. 實例化參數 var pdfh5 = new Pdfh5(selector, options);
參數名稱 類型 取值 是否必須 作用
selector {String} pdfh5的容器選擇器
options {Object} × pdfh5的配置項參數
  1. 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} 默認”//www.gjtool.cn/cmaps/ 解析pdf時,特殊情況下顯示完整字體的cmaps文件夾路徑,例如 cMapUrl:”//unpkg.com/
limit {Number} 默認0 限制pdf載入最大頁數
  1. pdf文件流請求示例(以jq ajax為例)
$.ajax({
  url: "//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: "//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: "//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
		});
	}
});
  1. 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方法監聽所有事件
  1. 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的用發


在線預覽: //www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/git.pdf


  1. 引入css
    <link rel="stylesheet" href="css/pdfh5.css" />
  2. 創建div
    <div id="demo"></div>
  3. 依次引入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>
  1. 實例化:
var pdfh5 = new Pdfh5('#demo', {
  pdfurl: "./default.pdf"
});
  1. 實例化參數 var pdfh5 = new Pdfh5(selector, options);
參數名稱 類型 取值 是否必須 作用
selector {String} pdfh5的容器選擇器
options {Object} × pdfh5的配置項參數
  1. 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} 默認”//www.gjtool.cn/cmaps/ 解析pdf時,特殊情況下顯示完整字體的cmaps文件夾路徑,例如 cMapUrl:”//unpkg.com/
limit {Number} 默認0 限制pdf載入最大頁數
  1. pdf文件流請求示例(以jq ajax為例)
$.ajax({
  url: "//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: "//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: "//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
		});
	}
});
  1. 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方法監聽所有事件
  1. 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銷毀
————恢復內容結束————
Tags: