Home  ›  Document & File Tools  ›  CBZ to EPUB
📖

CBZ to EPUB

Package comic images from a CBZ archive into an EPUB ebook in reading order.

◉ 100% Free⚡ Local Processing◈ Browser Tool

✨ Choose File & Process

Comic images are packaged into an EPUB 3 file in natural filename order.
🔒 Files stay in your browser
⚡ Runs in your browser
⬇ Clear downloadable output

📖 How to use

  • Choose the required input file or content.
  • Set the available options.
  • Run the main action and let the browser process it.
  • Download and check the generated output.

⚡ Features

  • Free browser-based workflow.
  • No account required.
  • Focused controls for this conversion.
  • Designed for desktop and mobile browsers.

💡 Pro Tips

  • Keep the original file as a backup.
  • Use a modern browser for best compatibility.
  • Review the generated result before sharing it.
  • Large files can take longer to process.
')}); assets.forEach(a=>{manifest+='';z.file('OEBPS/'+a.href,a.data)}); z.file('OEBPS/nav.xhtml',''+tdhEscape(title)+''); z.file('OEBPS/content.opf','urn:uuid:'+uid+''+tdhEscape(title)+'en'+manifest+''+spine+''); return z.generateAsync({type:'blob',mimeType:'application/epub+zip',compression:'DEFLATE'}); } go.onclick=async()=>{tdhError('');try{const f=file.files[0];if(!f)throw Error('Choose a CBZ file.');const z=await JSZip.loadAsync(await f.arrayBuffer()),names=Object.keys(z.files).filter(n=>/\.(jpe?g|png|gif|webp)$/i.test(n)&&!z.files[n].dir).sort(tdhNatural);if(!names.length)throw Error('No supported comic images were found.');const assets=[],chap=[];for(let i=0;iComic page '+(i+1)+''})}const blob=await makeEpub(tdhBase(f.name).replace(/-/g,' '),chap,assets);tdhDownload(blob,tdhBase(f.name)+'.epub');tdhStatus('EPUB created with '+names.length+' comic page(s).');}catch(e){tdhError(e.message||String(e))}};