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.88 kB
var b=process.cwd(),g="node_modules/pdfjs-dist/cmaps/",u="node_modules/pdfjs-dist/standard_fonts/";var l={imgType:"png",pages:"all",scale:1,background:"rgb(255,255,255)",intent:"display",documentOptions:{},maxWidth:null,maxHeight:null,scaleForBrowserSupport:!1},A=(t,e)=>{let r=e!==void 0?t:1,n=e!==void 0?e:t;return Array.from({length:n-r+1},(o,a)=>r+a)};function P(t,e){return t==="firstPage"?[1]:t==="lastPage"?[e]:typeof t=="number"?[Math.max(1,t)]:Array.isArray(t)?t.length?t:[1]:typeof t=="object"?A(t.startPage??1,t.endPage??e):A(1,e)}function x(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 j(t,e){let r=async n=>await U(n,e);return Array.isArray(t)?Promise.all(t.map(r)):r(t)}async function U(t,e={}){let r=await import("pdfjs-dist/legacy/build/pdf.mjs"),n={...l,...e},a=await r.getDocument({standardFontDataUrl:u,cMapUrl:g,cMapPacked:!0,...x(t)?{data:Buffer.isBuffer(t)?new Uint8Array(t):t}:{url:t},...n.documentOptions}).promise,s=a.numPages,c=P(n.pages,s),i=await Promise.all(c.map(m=>w(a,m,n)));return n.pages==="firstPage"||n.pages==="lastPage"||typeof n.pages=="number"?i[0]:i}async function w(t,e,r){let n=await t.getPage(e),o=r.scale,a=n.getViewport({scale:o});if(r.scaleForBrowserSupport||r.maxWidth||r.maxHeight){let{maxWidth:p,maxHeight:d}=r;p=p??4096,d=d??4096;let S=p/a.width,h=d/a.height,O=Math.min(S,h,1);o=o*O,a=n.getViewport({scale:o})}let s=t.canvasFactory,{canvas:c,context:i}=s.create(a.width,a.height);await n.render({canvasContext:i,viewport:a,background:r.background||"rgb(255,255,255)",intent:r.intent||"display"}).promise;let T=r.imgType==="jpg"?"image/jpeg":"image/png";return c.toDataURL(T)}export{j as pdfToImg,U as singlePdfToImg};