java canvas详解 pdf_用 H5 canvas 加载打开pdf

本文详细介绍了如何利用HTML5的Canvas元素结合JavaScript加载并翻页显示PDF文件。通过调整清晰度参数实现更好的视觉效果,并提供上一页、下一页功能。同时,文章提到了通过CSS进行页面控制。
摘要由CSDN通过智能技术生成

通过H5 加载pdf

并翻页页面程序如下。需引入:

上一页

页数: /

下一页

var url = '${context}/images/upload/anLiPdf/${datamap.doc_file}';

var pdfDoc = null,

pageNum = 1,

pageRendering = false,

pageNumPending = null,

scale = 1.8, //清晰度不清晰 可调整该值

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

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

/**

* Get page info from document, resize canvas accordingly, and render page.

* @param num Page number.

*/

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 = pageNum;

}

/**

* If another page rendering in progress, waits until the rendering is

* finised. Otherwise, executes rendering immediately.

*/

function queueRenderPage(num) {

if (pageRendering) {

pageNumPending = num;

} else {

renderPage(num);

}

}

/**

* Displays previous page.

*/

function onPrevPage() {

if (pageNum <= 1) {

return;

}

pageNum--;

queueRenderPage(pageNum);

}

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

/**

* Displays next page.

*/

function onNextPage() {

if (pageNum >= pdfDoc.numPages) {

return;

}

pageNum++;

queueRenderPage(pageNum);

}

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

/**

* Asynchronously downloads PDF.

*/

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

pdfDoc = pdfDoc_;

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

// Initial/first page rendering

renderPage(pageNum);

});

通过CSS 控制 缩进 显示引入目标网页或内容 部分内容。

7892113d0d4efe5a6755297c989c7e8b43e.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值