PDF a EPUB

Convierte PDF a formato ebook EPUB con navegación por capítulos.

Leer tutorial →

Suelta un archivo PDF aquí

o seleccionar archivo
💡 Tip: This tool works best with text-based PDFs. Scanned PDFs or documents with heavy graphics/images will produce limited results. For optimal conversion, use PDFs with selectable text content.

¿Por qué PDFNeo?

Diseñado para velocidad, privacidad y simplicidad.

Súper rápido

Procesa archivos en segundos con nuestro motor optimizado

100% seguro

Archivos procesados localmente, nunca subidos a servidores

Funciona en cualquier lugar

Úsalo en cualquier dispositivo, navegador y momento

Sin registro Funciona sin conexión Sin límites de archivo Gratis para siempre
Tus archivos se procesan localmente y nunca se suben a ningún servidor.

Page ${ch.pageNum}

${textToHTMLParagraphs(ch.text)}
`; zip.file(`OEBPS/${ch.id}.xhtml`, xhtmlContent); manifest.push(` `); spine.push(` `); tocNav.push(`
  • Page ${ch.pageNum}
  • `); } // 4. Style CSS zip.file('OEBPS/style.css', `body { font-family: Georgia, "Times New Roman", serif; font-size: 1em; line-height: 1.6; margin: 1em; color: #333; } .chapter { margin-bottom: 2em; } .chapter-title { font-size: 1.3em; color: #4d2df9; border-bottom: 1px solid #ddd; padding-bottom: 0.3em; margin-bottom: 1em; page-break-before: always; } p { margin: 0.5em 0; text-indent: 0; } p + p { text-indent: 1.5em; }`); // 5. content.opf zip.file('OEBPS/content.opf', ` urn:uuid:${bookId} ${escapeXML(bookTitle)} ${escapeXML(bookAuthor)} en ${new Date().toISOString().split('T')[0]} ${manifest.join('\n')} ${spine.join('\n')} `); // 6. toc.ncx const navPoints = chapters.map((ch, idx) => ` Page ${ch.pageNum} `).join('\n'); zip.file('OEBPS/toc.ncx', ` ${escapeXML(bookTitle)} ${escapeXML(bookAuthor)} ${navPoints} `); showProgress(true, 90, 'Packaging EPUB...'); // Generate EPUB blob - ensure mimetype is written first uncompressed resultBlob = await zip.generateAsync({ type: 'blob', mimeType: 'application/epub+zip', compression: 'DEFLATE', compressionOptions: { level: 6 } }); showProgress(true, 100, '¡Listo!'); setTimeout(() => { showProgress(false); const sizeMB = (resultBlob.size / (1024 * 1024)).toFixed(2); document.getElementById('resultInfo').textContent = `${pages.length} page(s) converted to EPUB`; document.getElementById('resultDetails').innerHTML = `Title: ${escapeHTML(bookTitle)} | Chapters: ${chapters.length} | Size: ${sizeMB} MB | Format: EPUB2`; document.getElementById('resultArea').style.display = 'block'; }, 500); } catch (err) { alert('Error: ' + err.message); showProgress(false); } btn.disabled = false; } function downloadEPUB() { if (!resultBlob) return; const baseName = pdfFile ? pdfFile.name.replace('.pdf', '') : 'output'; downloadBlob(resultBlob, baseName + '.epub'); }