UNPKG

pdftoimg-js

Version:

A javascript library that help to convert pdf to img in both platform nodejs and browser

2 lines (1 loc) 1.93 kB
var u={imgType:"png",pages:"all",scale:1,background:"rgb(255,255,255)",intent:"display",documentOptions:{},maxWidth:null,maxHeight:null,scaleForBrowserSupport:!1},f=(t,n)=>{let r=n!==void 0?t:1,a=n!==void 0?n:t;return Array.from({length:a-r+1},(o,e)=>r+e)};function y(t,n){return t==="firstPage"?[1]:t==="lastPage"?[n]:typeof t=="number"?[Math.max(1,t)]:Array.isArray(t)?t.length?t:[1]:typeof t=="object"?f(t.startPage??1,t.endPage??n):f(1,n)}function l(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array}function D(t,n){let r=async a=>await O(a,n);return Array.isArray(t)?Promise.all(t.map(r)):r(t)}async function O(t,n={}){let r=await import("pdfjs-dist/legacy/build/pdf.mjs"),a=navigator.userAgent,o=a.includes("chrome")||a.includes("Chromium")||a.includes("Chrome");r.GlobalWorkerOptions.workerSrc="//cdnjs.cloudflare.com/ajax/libs/pdf.js/4.8.69/pdf.worker.min.mjs";let e={...u,...n},c=await r.getDocument({...l(t)?{data:t}:{url:t},isChrome:o,...e.documentOptions}).promise,g=c.numPages,m=y(e.pages,g),d=await Promise.all(m.map(s=>S(c,s,e)));return e.pages==="firstPage"||e.pages==="lastPage"||typeof e.pages=="number"?d[0]:d}async function S(t,n,r){let a=await t.getPage(n),o=r.scale,e=a.getViewport({scale:o});if(r.scaleForBrowserSupport||r.maxWidth||r.maxHeight){let{maxWidth:s,maxHeight:p}=r;s=s??4096,p=p??4096;let A=s/e.width,P=p/e.height,h=Math.min(A,P,1);o=o*h,e=a.getViewport({scale:o})}let i=document.createElement("canvas"),c=i.getContext("2d");i.height=e.height,i.width=e.width,await a.render({canvasContext:c,viewport:e,intent:r.intent||"display",background:r.background||"rgb(255,255,255)"}).promise;let m=r.imgType==="jpg"?"image/jpeg":"image/png";return i.toDataURL(m)}export{D as pdfToImg,O as singlePdfToImg};