Js 之pdf文件转图片上传
2020-12-22 03:42
标签:sync worker readasa turn fileread syn file set blob Js 之pdf文件转图片上传 标签:sync worker readasa turn fileread syn file set blob 原文地址:https://www.cnblogs.com/yang-2018/p/13972242.htmlDOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>pdf转图片与上传title>
head>
body>
input id=‘pdf‘ type=‘file‘ accept="application/pdf">
div id="imgDiv">div>
body>
script src="jquery.js">script>
script src="pdf.js">script>
script src="pdf.worker.js">script>
script>
$("#pdf").change(function () {
var pdfFileURL = $(‘#pdf‘).val();
if (pdfFileURL) {
$("#imgDiv").empty();//清空上一PDF文件展示图
var files = $(‘#pdf‘).prop(‘files‘); //获取到文件
/*pdf.js无法直接打开本地文件,所以利用FileReader转换*/
var reader = new FileReader();
reader.readAsArrayBuffer(files[0]);
reader.onload = function (e) {
var typedarray = new Uint8Array(this.result);
PDFJS.getDocument(typedarray).then(function (pdf) { //PDF转换为canvas
$("#imgDiv").css("border", "0"); //清除文本、边框
if (pdf) {
var pageNum = pdf.numPages;
for (var i = 1; i pageNum; i++) {
var canvas = document.createElement(‘canvas‘);
canvas.id = "pageNum" + i;
$("#imgDiv").append(canvas);
var context = canvas.getContext(‘2d‘);
openPage(pdf, i, context);
}
}
});
};
}
});
function openPage(pdfFile, pageNumber, context) {
var scale = 2;
pdfFile.getPage(pageNumber).then(function(page) {
viewport = page.getViewport(scale); // reference canvas via context
var canvas = context.canvas;
canvas.width = viewport.width;
canvas.height = viewport.height;
canvas.style.width = "100%";
canvas.style.height = "100%";
var renderContext = {
canvasContext: context,
viewport: viewport
};
var renderTask = page.render(renderContext);
renderTask.then(function () {
canvas.toBlob(function (blob) {
let formdata = new FormData();
formdata.append(‘file‘, blob);
//文件上传
$.ajax({
url: "url",
type: ‘post‘,
data: formdata,
dataType: ‘json‘,
async: false,
cache: false,
contentType: false,
processData: false,
success(res) {
console.log(res)
}
})
})
})
});
return;
};
script>
html>
上一篇:jQuery(四)
下一篇:使用docker安装redis -- 转帖https://blog.csdn.net/weixin_38958597/article/details/106048983