天天看點

php h5加載pdf文檔,html5加載pdf

兩個方法,跨域加載服務端pdf檔案和加載靜态pdf檔案,調用代碼見下方:

1.跨域加載pdf

window.open("pdf/web/viewer.html?file=http://xxx.xxx.xxx.xxx:8082//test/test.pdf");

裡面的xxx是服務端ip,應該都能看懂。

把附件檔案夾放入工程中即可使用

跨域加載需要導入的檔案太多,占用空間太大

2.加載靜态pdf,代碼貼在最下方,說明在下面:

靜态加載pdf需要先将pdf檔案放入工程中,同時需要導入pdf.js 和pdf.worker.js

scale = 2,//清晰度,越大清晰度越高

可在頁面中嵌入pdf檔案,頁面中需要有以下樣式:

上一頁

下一頁    

Page: /

靜态加載代碼:

owner.loadPdfLocal = function(url){

var pdfDoc = null,

pageNum = 1,

pageRendering = false,

pageNumPending = null,

scale = 2,//清晰度,越大清晰度越高

canvas = document.getElementById('the-canvas'),

ctx = canvas.getContext('2d');

function renderPage(num) {

pageRendering = true;

// Using promise to fetch the page

pdfDoc.getPage(num).then(function(page) {

var viewport = page.getViewport(scale);

canvas.height = viewport.height;

canvas.width = viewport.width;

// Render PDF page into canvas context

var renderContext = {

canvasContext: ctx,

viewport: viewport

};

var renderTask = page.render(renderContext);

// Wait for rendering to finish

renderTask.promise.then(function() {

pageRendering = false;

if(pageNumPending !== null) {

// New page rendering is pending

renderPage(pageNumPending);

pageNumPending = null;

}

});

});

// Update page counters

document.getElementById('page_num').textContent = num;

}

function queueRenderPage(num) {

if(pageRendering) {

pageNumPending = num;

} else {

renderPage(num);

}

}

function onPrevPage() {

if(pageNum <= 1) {

return;

}

pageNum--;

queueRenderPage(pageNum);

}

document.getElementById('prev').addEventListener('click', onPrevPage);

function onNextPage() {

if(pageNum >= pdfDoc.numPages) {

return;

}

pageNum++;

queueRenderPage(pageNum);

}

document.getElementById('next').addEventListener('click', onNextPage);

PDFJS.getDocument(url).then(function(pdfDoc_) {

pdfDoc = pdfDoc_;

document.getElementById('page_count').textContent = pdfDoc.numPages;

// Initial/first page rendering

renderPage(pageNum);

});

}