PageSourceSearch

https://conversiontab.com/build/assets/pdf-utility-page-CSbWyuvq.js

js conversiontab.com collected 2026-09-24 10:07:58 UTC 14,269 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-BDbxEQgs.js","assets/_commonjsHelpers-BosuxZz1.js","assets/_commonjs-dynamic-modules-TDtrdbi3.js","assets/index-BGjD53k8.js","assets/index-DJ_C-UqT.js"])))=>i.map(i=>d[i]);
2import{_ as K,e as ee,T as ie,M as ce}from"./app-gOHIPY12.js";import{saveResultFile as G}from"./ctResultAccessAd-Dk9whJZs.js";import{w as te,c as ne}from"./fileDropzone-CA_uaFcV.js";import"./FileSaver.min-BR20wtAe.js";import"./_commonjsHelpers-BosuxZz1.js";import"./ctFullscreenAd-CL-AA_Ul.js";import"./transientNotice-Ds_di7lD.js";function B(d){const y=document.getElementById("ctPdfUtilToastBody"),Z=document.getElementById("ctPdfUtilToast");if(!y||!Z||typeof ee>"u"){window.alert(d);return}y.textContent=d,ie.getOrCreateInstance(Z).show()}async function X(){const d=await K(()=>import("./pdf-BnPRJEQ6.js"),[]);try{const y=await K(()=>import("./pdf.worker--xMKpqib.js"),[]);d.GlobalWorkerOptions.workerSrc=y.default}catch{d.GlobalWorkerOptions.workerSrc=`https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${d.version}/pdf.worker.min.mjs`}return d}function de(){const d=document.getElementById("ctPdfImgFile"),y=document.getElementById("ctPdfImgFileZone"),Z=document.getElementById("ctPdfImgFileDropCaption"),L=document.getElementById("ctPdfImgZip"),g=document.getElementById("ctPdfImgClear"),P=document.getElementById("ctPdfImgName"),a=document.getElementById("ctPdfImgFormat"),s=document.getElementById("ctPdfImgArchive"),_=document.getElementById("ctPdfImgSelectAll"),T=document.getElementById("ctPdfImgSelectAllLabel"),M=document.getElementById("ctPdfImgList"),J=document.getElementById("ctPdfImgProg");if(!d||!L||!M)return;let u=[],h=new Set;const z=o=>{J&&(J.style.width=`${Math.min(100,Math.max(0,o))}%`)},U=(o="document")=>{var v;const b=String((P==null?void 0:P.value)||"").trim();if(b)return b.replace(/\.(zip|png|jpe?g)$/i,"");const l=(v=d.files)==null?void 0:v[0];return((l==null?void 0:l.name)||o).replace(/\.pdf$/i,"")},V=()=>String((a==null?void 0:a.value)||"jpeg").toLowerCase()==="png"?"png":"jpeg",W=o=>o==="png"?"image/png":"image/jpeg",H=o=>o==="png"?"png":"jpeg",x=()=>String((s==null?void 0:s.value)||"none").toLowerCase(),E=()=>
2{if(_){const o=u.length>0&&h.size===u.length;_.checked=o,_.indeterminate=h.size>0&&h.size<u.length,_.disabled=u.length===0}if(T){const o=u.length?` (${h.size}/${u.length})`:"";T.textContent=`Select All${o}`}},k=()=>{u.forEach(o=>{o.url&&URL.revokeObjectURL(o.url)}),u=[],h.clear(),M.innerHTML="",E()},F=()=>{if(M.innerHTML="",!u.length){E();return}const o=U("pages"),b=H(V());u.forEach(l=>{const v=document.createElement("div");v.className="col-6 col-md-4 col-lg-3 col-xl-2";const f=document.createElement("div");f.className="card position-relative shadow-sm",f.style.height="194px",f.style.width="150px",f.style.marginInline="auto";const N=document.createElement("div");N.className="position-absolute top-0 end-0 p-1",N.style.zIndex="2";const I=document.createElement("input");I.type="checkbox",I.className="form-check-input",I.checked=h.has(l.page),I.addEventListener("change",()=>{I.checked?h.add(l.page):h.delete(l.page),E(),S()}),N.appendChild(I);const t=document.createElement("img");t.className="w-100 h-100",t.alt=`Page ${l.page}`,t.src=l.url;const e=document.createElement("div");e.className="position-absolute bottom-0 start-0 px-2 py-1 small bg-white bg-opacity-75 rounded-end",e.textContent=`Page #${l.page}`;const n=document.createElement("button");n.type="button",n.className="btn btn-sm btn-outline-primary position-absolute bottom-0 end-0 m-1 py-0",n.textContent="↓",n.title=`Download page ${l.page}`,n.addEventListener("click",()=>{G(l.blob,`${o}_page_${l.page}.${b}`)}),f.appendChild(t),f.appendChild(N),f.appendChild(e),f.appendChild(n),v.appendChild(f),M.appendChild(v)}),E()},S=()=>{var b;const o=!!((b=d.files)!=null&&b.length);L.disabled=h.size===0,g&&(g.disabled=!o)},q=async()=>{var b;const o=(b=d.files)==null?void 0:b[0];if(!o||o.type!=="application/pdf"){B("Choose a PDF.");return}if(o.size>50*1024*1024){B("Max 50 MB.");return}L.disabled=!0,k(),z(0);try{const l=V(),v=W(l),f=await X(),N=await o.arrayBuffer(),I=await f.getDocument({data:N}).promise,t=2;for(let e=1;e<=I.numPages;e++){z(e/I.numPages*95);const n=await I.getPage(e),r=n.getViewport({scale:t}),p=document.createElement("canvas");p.width=r.width,p.height=r.height,await n.render({canvasContext:p.getContext("2d"),viewport:r}).promise;const i=await new Promise(m=>p.toBlob(m,v,l==="jpeg"?.92:void 0));i&&u.push({page:e,blob:i,url:URL.createObjectURL(i)})}h=new Set(u.map(e=>e.page)),F(),z(100)}catch(l){B(l instanceof Error?l.message:"Failed.")}finally{z(0),S()}};te({input:d,drop:y,dragContainer:y==null?void 0:y.closest(".card-body"),captionEl:Z,onChange:()=>{var o;k(),z(0),S(),(o=d.files)!=null&&o.length&&q()}}),S(),g==null||g.addEventListener("click",()=>{ne(d),k(),z(0),S()}),a==null||a.addEventListener("change",()=>{var o;(o=d.files)!=null&&o.length&&q()}),_==null||_.addEventListener("change",()=>{h.clear(),_.checked&&u.forEach(o=>h.add(o.page)),F(),S()}),L.addEventListener("click",async()=>{if(!u.length||h.size===0){B("Upload a PDF first.");return}L.disabled=!0;try{const o=V(),b=H(o),l=U("pages"),v=u.filter(e=>h.has(e.page)),f=x();if(f==="none"){v.forEach(e=>{G(e.blob,`${l}_page_${e.page}.${b}`)});return}f!=="zip"&&B("This format is exported as ZIP in browser mode.");const N=(await K(async()=>{const{default:e}=await import("./jszip.min-BDbxEQgs.js").then(n=>n.j);return{default:e}},__vite__mapDeps([0,1,2]))).default,I=new N;v.forEach(e=>{I.file(`page_${e.page}.${b}`,e.blob)});const t=await I.generateAsync({type:"blob"});G(t,`${l}.zip`)}catch(o){B(o instanceof Error?o.message:"Failed.")}finally{L.disabled=h.size===0}})}function re(){const d=document.getElementById("ctPdfRmFile"),y=document.getElementById("ctPdfRmFileZone"),Z=document.getElementById("ctPdfRmFileDropCaption"),L=document.getElementById("ctPdfRmPages"),g=document.getElementById("ctPdfRmKeepPages"),P=document.getElementById("ctPdfRmRemovePages"),a=document.getElementById("ctPdfRmEncrypted"),s=document.getElementById("ctPdfRmPass"),_=document.getElementById("ctPdfRmBtn"),T=document.getElementById("ctPdfRmClear"),M=document.getElementById("ctPdfRmName"),J=document.getElementById("ctPdfRmProg"),u=document.getElementById("ctPdfRmList"),h=document.getElementById("ctPdfRmPassModal"),z=document.getElementById("ctPdfRmPassModalMsg"),U=document.getElementById("ctPdfRmPassModalInput"),V=document.getElementById("ctPdfRmPassModalConfirm"),W=document.getElementById("ctPdfRmPassModalCancel");
2if(!d||!L||!_||!u)return;let H=[],x=new Set,E=0,k="";const F=t=>{J&&(J.style.width=`${Math.min(100,Math.max(0,t))}%`)},S=()=>{H.forEach(t=>URL.revokeObjectURL(t.url)),H=[],x.clear(),E=0,u.innerHTML=""},q=t=>new Promise(e=>{if(!h||!U||!V||!W||typeof ee>"u"){e(window.prompt(t||"Enter PDF password")||null);return}z&&(z.textContent=t||"This PDF is password protected."),U.value=(s==null?void 0:s.value)||"";const n=ce.getOrCreateInstance(h,{backdrop:"static",keyboard:!1});let r=!1;const p=c=>{r||(r=!0,V.removeEventListener("click",i),W.removeEventListener("click",m),h.removeEventListener("hidden.bs.modal",C),e(c))},i=()=>{const c=String(U.value||"").trim();if(!c){U.focus();return}n.hide(),p(c)},m=()=>{n.hide(),p(null)},C=()=>{p(null)};V.addEventListener("click",i),W.addEventListener("click",m),h.addEventListener("hidden.bs.modal",C),n.show(),setTimeout(()=>U.focus(),30)}),o=async t=>{var r;const e=String((s==null?void 0:s.value)||k||"").trim();if(e)return e;const n=await q(t);return n?(k=n,s&&(s.value=n),a&&(a.checked=!0),s&&(s.disabled=!((r=d.files)!=null&&r.length)||!(a!=null&&a.checked)),n):""},b=t=>{const e=new Set,n=String(t||"").trim();if(!n)return e;const r=n.split(/[\s,]+/).filter(Boolean);for(const p of r)if(p.includes("-")){const[i,m]=p.split("-").map(C=>parseInt(C,10));if(Number.isFinite(i)&&Number.isFinite(m)&&i>0&&m>=i){const C=Math.min(m,E||m);for(let c=i;c<=C;c++)e.add(c)}}else{const i=parseInt(p,10);Number.isFinite(i)&&i>0&&(!E||i<=E)&&e.add(i)}return e},l=()=>{if(!E)return;const t=b(L.value);if(!t.size)x=new Set(Array.from({length:E},(e,n)=>n+1));else if(g!=null&&g.checked)x=new Set([...t].filter(e=>e>=1&&e<=E));else{const e=new Set;for(let n=1;n<=E;n++)t.has(n)||e.add(n);x=e}v(),f()},v=()=>{u.innerHTML="",H.filter(e=>x.has(e.page)).forEach(e=>{const n=document.createElement("div");n.className="col-6 col-md-4 col-lg-3 col-xl-2";const r=document.createElement("div");r.className="card position-relative shadow-sm",r.style.height="194px",r.style.width="150px",r.style.marginInline="auto";const p=document.createElement("img");p.className="w-100 h-100",p.alt=`Page ${e.page}`,p.src=e.url;const i=document.createElement("button");i.type="button",i.className="btn btn-sm btn-outline-danger position-absolute top-0 end-0 m-1 py-0 px-1",i.textContent="x",i.title=`Remove page ${e.page}`,i.addEventListener("click",()=>{x.delete(e.page),v(),f()});const m=document.createElement("div");m.className="position-absolute bottom-0 start-0 px-2 py-1 small bg-white bg-opacity-75 rounded-end",m.textContent=`Page #${e.page}`,r.appendChild(p),r.appendChild(i),r.appendChild(m),n.appendChild(r),u.appendChild(n)})},f=()=>{var e;const t=!!((e=d.files)!=null&&e.length);_.disabled=!t||x.size===0,T&&(T.disabled=!t),g&&(g.disabled=!t),P&&(P.disabled=!t),a&&(a.disabled=!t),s&&(s.disabled=!t||!(a!=null&&a.checked))},N=async()=>{var e,n;const t=(e=d.files)==null?void 0:e[0];if(!t||t.type!=="application/pdf"){B("Choose a PDF.");return}if(t.size>50*1024*1024){B("Max 50 MB.");return}S(),F(0);try{const r=await X(),p=await t.arrayBuffer();if(a!=null&&a.checked&&!await o("Enter password/key for encrypted PDF."))throw new Error("Password is required.");let i=k||String((s==null?void 0:s.value)||"").trim(),m;for(;!m;)try{const c=p.slice(0);m=await r.getDocument({data:c,...i?{password:i}:{}}).promise}catch(c){const D=Number((c==null?void 0:c.code)||0);if(!(D===1||D===2||/password/i.test(String((c==null?void 0:c.message)||""))))throw c;const $=await q(D===2?"Incorrect password. Please try again.":"This PDF is password protected.");if(!$)throw new Error("Password is required to open this PDF.");i=$}k=i||"",s&&(s.value=k),a&&(a.checked=!!k),s&&(s.disabled=!((n=d.files)!=null&&n.length)||!(a!=null&&a.checked)),E=m.numPages;const C=.45;for(let c=1;c<=m.numPages;c++){F(c/m.numPages*95);const D=await m.getPage(c),A=D.getViewport({scale:C}),$=document.createElement("canvas");$.width=A.width,$.height=A.height,await D.render({canvasContext:$.getContext("2d"),viewport:A}).promise;const R=await new Promise(w=>$.toBlob(w,"image/jpeg",.85));R&&H.push({page:c,url:URL.createObjectURL(R)})}x=new Set(Array.from({length:E},(c,D)=>D+1)),v(),F(100)}catch(r){B(r instanceof Error?r.message:"Failed.")}finally{F(0),f()}},I=async(t,e,n)=>{const r=await X(),p=await t.arrayBuffer(),i=await r.getDocument({data:p.slice(0),...n?{password:n}:{}}).promise,{PDFDocument:m}=await K(async()=>{const{PDFDocument:R}=await import("./index-BGjD53k8.js");return{PDFDocument:R}},__vite__mapDeps([3,1,4])),C=await m.create(),c=[...e].sort((R,w)=>R-w);for(let R=0;R<c.length;R++){const w=c[R];F((R+1)/c.length*95);const Q=await i.getPage(w),j=Q.getViewport({scale:1.3}),O=document.createElement("canvas");O.width=j.width,O.height=j.height,await Q.render({canvasContext:O.getContext("2d"),viewport:j}).promise;const Y=await new Promise(se=>O.toBlob(se,"image/jpeg",.92));if(!Y)continue;const ae=await Y.arrayBuffer(),oe=await C.embedJpg(ae);C.addPage([O.width,O.height]).drawImage(oe,{x:0,y:0,width:O.width,height:O.height})}const D=await C.save(),A=String((M==null?void 0:M.value)||"").trim().replace(/\.pdf$/i,""),$=`${(t.name||"document").replace(/\.pdf$/i,"")}_trimmed`;G(new Blob([D],{type:"application/pdf"}),`${A||$}.pdf`),F(100)};te({input:d,drop:y,dragContainer:y==null?void 0:y.closest(".card-body"),captionEl:Z,onChange:()=>{var t;S(),L.value="",F(0),f(),(t=d.files)!=null&&t.length&&N()}}),f(),T==null||T.addEventListener("click",()=>{ne(d),L.value="",g&&(g.checked=!1),P&&(P.checked=!0),a&&(a.checked=!1),s&&(s.value=""),k="",S(),F(0),f()}),g==null||g.addEventListener("change",()=>{g.checked?P&&(P.checked=!1):P&&(P.checked=!0),l()}),P==null||P.addEventListener("change",()=>{P.checked?g&&(g.checked=!1):g&&(g.checked=!0),l()}),a==null||a.addEventListener("change",()=>{var t,e;s&&(s.disabled=!a.checked||!((t=d.files)!=null&&t.length),a.checked||(s.value="")),a!=null&&a.checked&&((e=d.files)!=null&&e.length)&&!String((s==null?void 0:s.value)||"").trim()&&o("Enter password/key for encrypted PDF.")}),L.addEventListener("blur",l),L.addEventListener("change",l),_.addEventListener("click",async()=>{var e;const t=(e=d.files)==null?void 0:e[0];if(!t||t.type!=="application/pdf"){B("Choose a PDF.");return}if(t.size>50*1024*1024){B("Max 50 MB.");return}if(!x.size){B("No pages selected.");return}if(a!=null&&a.checked&&!String((s==null?void 0:s.value)||k||"").trim()&&!await o("Enter password/key before download.")){B("Password is required.");return}_.disabled=!0;try{const{PDFDocument:n}=await K(async()=>{const{PDFDocument:w}=await import("./index-BGjD53k8.js");return{PDFDocument:w}},__vite__mapDeps([3,1,4])),r=await t.arrayBuffer();let p;const i=String((s==null?void 0:s.value)||k||"").trim();try{p=await n.load(r.slice(0),{ignoreEncryption:!1,...i?{password:i}:{}})}catch(w){if(!/password|encrypted/i.test(String((w==null?void 0:w.message)||"")))throw w;let j=i;if(j||(j=await q("Enter password to process this encrypted PDF.")),!j)throw new Error("Password is required to process this PDF.");k=j,s&&(s.value=j),a&&(a.checked=!0),await I(t,x,j);return}const m=await n.create(),C=p.getPageCount(),c=[];for(let w=0;w<C;w++)x.has(w+1)&&c.push(w);if(!c.length){B("No pages selected."),f();return}
2(await m.copyPages(p,c)).forEach(w=>m.addPage(w));const A=await m.save(),$=String((M==null?void 0:M.value)||"").trim().replace(/\.pdf$/i,""),R=`${(t.name||"document").replace(/\.pdf$/i,"")}_trimmed`;G(new Blob([A],{type:"application/pdf"}),`${$||R}.pdf`),F(100)}catch(n){B(n instanceof Error?n.message:"Failed.")}finally{F(0),f()}})}function Pe(){const d=document.getElementById("ct-pdf-utility-root");if(!d)return;d.dataset.ctKind==="page-remover"?re():de()}export{Pe as initPdfUtilityPage};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.