SOURCE

console 命令行工具 X clear

                    
>
console
const pdfToImg = (file, page) => {
    // https://mozilla.github.io/pdf.js/build/pdf.js
    return new Promise((resolve, reject) => {
        // 如果提供了来自远程服务器的绝对URL,则在该服务器上配置CORS头。
        var url = file;

        // 通过<script>标签加载,创建访问PDF.js导出的快捷方式。
        var pdfjsLib = window['pdfjs-dist/build/pdf'];

        // 指定workerSrc属性。
        pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';

        // 异步下载PDF
        var loadingTask = pdfjsLib.getDocument(url);
        var imgEl = document.getElementById('img')
        loadingTask.promise.then((pdf) => {
            console.log('PDF loaded');

            // 获取第一页
            var pageNumber = page;
            pdf.getPage(pageNumber).then(function (page) {
                console.log('Page loaded');

                var scale = 1;
                var viewport = page.getViewport({ scale: scale });

                // 准备画布使用PDF页面尺寸
                var canvas = document.createElement("canvas");
                var context = canvas.getContext('2d');
                canvas.height = viewport.height;
                canvas.width = viewport.width;

                // 渲染PDF页到画布上下文
                var renderContext = {
                    canvasContext: context,
                    viewport: viewport
                };
                var renderTask = page.render(renderContext);
                renderTask.promise.then(function () {
                    imgEl.src = canvas.toDataURL("image/png")
                    // console.log('Page rendered');
                    // console.log('原始大小:', viewport.width, viewport.height)
                    // console.log('图片路径:', canvas.toDataURL("image/png"))
                    resolve({ code: '0', url: canvas.toDataURL("image/png"), size: viewport })
                });
            });
        }, (reason) => {
            // PDF loading error
            // console.error(reason);
            resolve({ code: '1', message: reason })
        });
    })

}
pdfToImg('https://192.168.51.40/case-compliance-mt/api/fileInfo/preview?fileId=f1fdcd1a-4649-453f-af07-cc9acfcbcc2b', 1).then((info) => {
    console.log(info)
    if(info.code === '0'){
        console.log(`转图片成功,尺寸为:${info.size.width}--${info.size.height}`)
    } else {
        console.log(`转图片失败,原因:${info.message.message}`)
    }
})
<h1>PDF.js--pdf转img,并获得原始尺寸大小和图片路径</h1>
<h2>如果报错401,需要登录下合规项目,因为pdf文件用的合规的,不登陆可能会无权访问pdf文件</h2>

<img id="img" />
#img {
  border: 1px solid black;
}

本项目引用的自定义外部资源