word文件转成图片困难,PDF文件可以通过pdfjs插件转成图片。注意pdfjs插件对浏览器版本有兼容限制,最新的pdf4采用es6语法,老版本浏览器(google91亲测支持)或者老版本项目中不能使用,必须使用es5语法的版本,经过多次版本试验,pdfjs2.5.207是可以的,这里简单给出使用示例代码,需要下载文件可以到https://gitee.com/dilongjuan/pdfjs2.5.207.git下载压缩包。
html部分代码:
<script src="../../../js/jquery.min.js"></script>
<script src="../../../js/pdf/build/pdf.js"></script>
<script src="../../../js/pdf/build/pdf.worker.js"></script>
<div id="pdfImg">
</div>
js代码:
function pdfToImg() {
var url = "./11.pdf";//文件路径
previewPdf(url);
}
function previewPdf(url) {
if (url) {
pdfjsLib.workerSrc = 'pdf.worker.js';
var loadingTask = pdfjsLib.getDocument({
scale: 1,
url: url,
cMapUrl: '../../../js/pdf/web/cmaps/', // 解决图片没有汉字的问题
cMapPacked: true // 解决图片没有汉字的问题
})
loadingTask.promise.then((pdf) => {
console.log('PDF loaded');
var pageNum = pdf.numPages;
for (var i = 1; i <= pageNum; i++) {
pdf.getPage(i).then(function (page) {
console.log('Page loaded');
var viewport = page.getViewport({
scale: 1
});
var canvas = document.createElement("canvas");
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
var renderTask = page.render(renderContext);
renderTask.promise.then(function () {
console.log('Page rendered');
var imgUrl = canvas.toDataURL('image/jpeg'); //转换为base64
const img = document.createElement('img');
img.src = imgUrl;
img.style.height = "200px";
img.style.width = "200px";
document.getElementById("pdfImg").appendChild(img);
});
});
}
}, (reason) => {
console.error(reason);
});
}
}
效果图:
注意:pdfjs2.5版本在ie11上不支持,ie11亲测需要使用稳定版2.0.943,下载地址同上,注意不同版本代码区别;
//pdfjs2.5.207以后版本 支持google91
// var viewport = page.getViewport({
// scale: 1
// });
//PDFJS2.0.943版本 支持ie11
var viewport = page.getViewport(1);