Ebook Converter: Convert Between EPUB, PDF, FB2, Markdown & More in Your Browser
Table of Contents
- What Is the Ebook Converter?
- 7 Input Formats, 4 Output Formats
- Understanding EPUB: The Universal Ebook Standard
- How EPUB Parsing Works
- Building Valid EPUB 3.0 Packages
- FB2: The FictionBook Format Explained
- PDF, RTF & Markdown: Format-Specific Handling
- The Preview System: Read Before You Convert
- Under the Hood: 4 JavaScript Libraries
- Conversion Quality: What Gets Preserved
- Privacy: Your Books Never Leave Your Device
- Common Workflows & Use Cases
- vs. Calibre, Online-Convert & Zamzar
- Frequently Asked Questions
- Conclusion
You have a library of ebooks scattered across formats. Your Kindle exports sit as PDF files that you cannot reflow on a phone. A friend sends a Russian novel in FB2 and your reader does not recognize it. Your Markdown drafts need to become proper EPUBs before you can distribute them. The obvious solution is an online converter — upload the file, wait, download the result, and hope that the server did not keep a copy of your book. The Ebook Converter on ZeroDataUpload eliminates that entire chain of trust. It accepts 7 input formats, produces 4 output formats, builds valid EPUB 3.0 packages from scratch, parses FB2 XML, extracts PDF text, strips RTF control codes, and renders Markdown — all inside your browser. Your books never leave your device.
1. What Is the Ebook Converter?
The Ebook Converter is a browser-based format converter built specifically for ebook and long-form text files. It runs entirely client-side using four JavaScript libraries: JSZip for reading and creating EPUB archives, jsPDF for generating PDF documents, pdf.js for extracting text from existing PDFs, and FileSaver.js for downloading the converted output. You select an input file, choose a target format, preview the content, and click convert. The entire pipeline — file reading, format parsing, content transformation, and output generation — executes within your browser's JavaScript engine. No server receives your data. No API call is made. No upload occurs.
The converter handles 7 input formats (EPUB, PDF, TXT, HTML, FB2, RTF, and Markdown) and 4 output formats (EPUB, PDF, TXT, and HTML), producing 25 distinct conversion paths. Each path is purpose-built: EPUB parsing involves decompressing ZIP archives and walking the OPF manifest; FB2 conversion requires XML parsing with element-level tag mapping; PDF generation uses precise typographic calculations for margins, line height, and page breaks. This is not a generic file converter that treats everything as binary blobs — each format receives specialized handling that respects its structure and semantics.
2. 7 Input Formats, 4 Output Formats
Input Formats
- EPUB — The dominant open ebook standard. A ZIP archive containing XHTML content files, a package document (OPF), a navigation document, and optional images, fonts, and stylesheets. Used by Apple Books, Kobo, Google Play Books, and most non-Amazon reading apps.
- PDF — Portable Document Format. Fixed-layout documents with embedded fonts and precise positioning. Common for academic papers, scanned books, and documents where visual fidelity matters more than reflowability.
- TXT — Plain text with no formatting. The simplest and most universal text format, used for Project Gutenberg titles, notes, manuscripts, and data files.
- HTML — HyperText Markup Language. Web pages, saved articles, exported blog posts, and any content authored in a web editor.
- FB2 — FictionBook 2, an XML-based ebook format developed in Russia and widely used across Eastern Europe. Stores book structure (chapters, titles, annotations) as semantic XML rather than visual markup.
- RTF — Rich Text Format. Microsoft's legacy interchange format, still used by legal software, older word processors, and cross-platform text editors. Encodes formatting through backslash-prefixed control sequences.
- Markdown — Lightweight markup using plain text conventions (#, **, *, `) to indicate headings, bold, italic, and code. The preferred format for technical writing, README files, and note-taking apps.
Output Formats
- EPUB — Full EPUB 3.0 packages with metadata, navigation, and XHTML content chapters.
- PDF — A4 documents with Helvetica typography, automatic line wrapping, and multi-page support.
- TXT — Clean plain text with formatting stripped and entities decoded.
- HTML — Styled HTML documents with Georgia serif typography and responsive layout.
Complete Conversion Matrix
- EPUB → PDF, TXT, HTML
- PDF → TXT, HTML, EPUB
- TXT → PDF, EPUB, HTML
- HTML → PDF, EPUB, TXT
- FB2 → EPUB, PDF, TXT, HTML (most flexible — 4 outputs)
- RTF → TXT, PDF, HTML, EPUB
- Markdown → HTML, PDF, EPUB, TXT
FB2 supports all four output formats, making it the most flexible input format. This is because FB2's clean XML structure parses reliably into intermediate text and HTML representations, which then feed naturally into the EPUB builder, PDF generator, and text extractor.
3. Understanding EPUB: The Universal Ebook Standard
EPUB (Electronic Publication) is an open standard maintained by the W3C. At its core, an EPUB file is a ZIP archive with a .epub extension. Inside that ZIP, a carefully structured set of files defines the book's metadata, reading order, content, and navigation. Understanding this structure is essential for understanding how the Ebook Converter reads and writes EPUB files.
Every valid EPUB archive contains these key components:
my-book.epub (ZIP archive)
├── mimetype # Must be first file, uncompressed
├── META-INF/
│ └── container.xml # Points to the OPF package document
└── OEBPS/
├── content.opf # Package document: metadata + manifest + spine
├── toc.xhtml # Navigation document (EPUB 3)
├── chapter1.xhtml # Content file
├── chapter2.xhtml # Content file
└── images/
└── cover.jpg # Optional embedded images
The mimetype file must be the very first entry in the ZIP archive and must contain exactly the string application/epub+zip with no trailing newline. It must be stored uncompressed (no DEFLATE) so that the first bytes of the ZIP file can be inspected without decompression. This allows reading systems and operating systems to identify the file as an EPUB by examining raw bytes.
The container.xml file in the META-INF/ directory acts as a routing file. It tells reading systems where to find the package document (OPF file) within the archive. A typical container.xml looks like this:
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf"
media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
The content.opf (Open Packaging Format) file is the heart of the EPUB. It contains three critical sections: metadata describing the book (title, author, language, unique identifier, modification date), a manifest listing every file in the publication, and a spine defining the reading order. The spine is what distinguishes EPUB from a random ZIP of HTML files — it specifies exactly which content documents to present and in what sequence.
4. How EPUB Parsing Works
When you load an EPUB into the Ebook Converter, the parsing process follows a precise chain of operations designed to extract readable content from the compressed archive structure.
Step 1: ZIP Decompression. JSZip loads the EPUB file as a binary blob and decompresses the ZIP structure. This exposes all files within the archive as a virtual file system that JavaScript can traverse.
Step 2: Locate the OPF. The parser reads META-INF/container.xml to find the full-path attribute on the <rootfile> element. This path — typically OEBPS/content.opf but not always — points to the package document. Some publishers use different directory names like content/ or place the OPF at the archive root. The container.xml indirection ensures the parser finds it regardless of directory structure.
Step 3: Parse the Manifest. The OPF's <manifest> section lists every resource in the publication with an id, href, and media-type. The parser builds a lookup map from manifest IDs to file paths. For example, a manifest entry like <item id="ch01" href="chapter1.xhtml" media-type="application/xhtml+xml"/> maps the ID ch01 to the file chapter1.xhtml.
Step 4: Walk the Spine. The OPF's <spine> section contains <itemref> elements whose idref attributes reference manifest IDs. The spine defines reading order: the first <itemref> is the first thing the reader sees, the second is the next, and so on. The parser resolves each idref through the manifest map to get the actual file path, then reads those files from the ZIP in spine order.
Step 5: Extract Text. Each content file (typically XHTML) is read as a string. The parser strips all HTML tags using a regex pass, then decodes HTML entities: becomes a space, & becomes an ampersand, < and > become angle brackets, and numeric entities like — become their Unicode equivalents. The result is clean, readable plain text.
Fallback: Alphabetical Order. Not all EPUB files are well-formed. Some lack a valid OPF, have malformed XML, or use non-standard packaging. When the parser cannot locate or parse the OPF manifest, it falls back to extracting all .xhtml and .html files from the archive and sorting them alphabetically. This heuristic works surprisingly well because most EPUB authoring tools name chapter files sequentially (chapter01.xhtml, chapter02.xhtml, etc.).
5. Building Valid EPUB 3.0 Packages
The converter's buildEpub function constructs a complete, valid EPUB 3.0 package from scratch. This is the most architecturally complex part of the converter because EPUB 3.0 has strict structural requirements that reading systems enforce rigorously.
The builder creates a ZIP archive with five files:
1. mimetype — Contains application/epub+zip exactly. Stored with zero compression (JSZip compression level 0) as the first entry in the archive. This is a non-negotiable requirement of the EPUB specification.
2. META-INF/container.xml — The standard routing file pointing to OEBPS/content.opf. Uses the urn:oasis:names:tc:opendocument:xmlns:container namespace.
3. OEBPS/content.opf — The package document containing three sections:
- Metadata:
<dc:identifier>with a generated unique ID,<dc:title>derived from the input filename,<dc:language>set toen, and<meta property="dcterms:modified">with the current UTC timestamp in ISO 8601 format. - Manifest: Two items —
chapter1pointing tochapter1.xhtmlwith media typeapplication/xhtml+xml, andtocpointing totoc.xhtmlwith thenavproperty (which identifies it as the EPUB 3 navigation document). - Spine: A single
<itemref idref="chapter1"/>defining the reading order.
4. OEBPS/chapter1.xhtml — The content document using the XHTML 1.1 DOCTYPE. The converted text is wrapped in proper <html>, <head>, and <body> elements with the XHTML namespace declaration. Paragraph breaks in the source text are converted to <p> elements.
5. OEBPS/toc.xhtml — The EPUB 3 navigation document containing a <nav epub:type="toc"> element with an ordered list linking to the chapter. This navigation document replaces the NCX file used in EPUB 2 and is required for EPUB 3.0 conformance.
All content files are compressed using DEFLATE at compression level 9 (maximum compression) except for the mimetype file. The resulting EPUB passes EPUB validation and opens correctly in Apple Books, Kobo, Google Play Books, Calibre, and all major EPUB reading systems.
6. FB2: The FictionBook Format Explained
FictionBook 2 (FB2) is an XML-based ebook format created by Dmitry Gribov in Russia in the early 2000s. It became the dominant ebook format in Russia and across Eastern Europe, supported by popular reading apps like FBReader, CoolReader, and Moon+ Reader. While EPUB has since overtaken it in global adoption, FB2 remains widely used for Russian-language literature, and massive online libraries like Flibusta and Lib.rus.ec distribute their collections primarily in FB2.
What makes FB2 architecturally distinctive is its insistence on semantic structure over visual presentation. Where HTML describes how content should look (bold, italic, font-size), FB2 describes what content means (title, section, epigraph, annotation, poem, stanza, verse). An FB2 file is a single XML document — no ZIP archive, no multiple files — with a root <FictionBook> element containing a <description> section (metadata about the book and author) and one or more <body> sections (the actual content).
The Ebook Converter's FB2 parser handles two conversion paths: text extraction and HTML generation.
FB2 to Text extracts the <body> element content and strips all XML tags, producing clean plain text. This is a straightforward operation because FB2's XML is clean and predictable — there are no inline styles, no class attributes, no JavaScript — just semantic tags wrapping text content.
FB2 to HTML uses a dedicated fb2ToHtml function that maps FB2 elements to their HTML equivalents with careful attention to readability:
<section>elements become<div>containers<title>elements become<h2>headings<emphasis>elements become<em>(italic) tags<empty-line/>elements become<br><br>for visual paragraph spacing<p>elements map directly to HTML<p>tags
The generated HTML is wrapped in a styled document using Georgia serif font at readable proportions: maximum width of 720 pixels, line height of 1.7, and comfortable padding. This produces output that reads like a properly typeset book page rather than raw unstyled HTML.
Because FB2 parses cleanly into both text and structured HTML, it feeds naturally into all four output formats — the HTML output can be wrapped into an EPUB package, the text output can be formatted into a PDF, and both intermediate representations are already available for direct TXT and HTML output. This is why FB2 supports the most conversion paths of any input format.
7. PDF, RTF & Markdown: Format-Specific Handling
PDF Text Extraction
PDF files present a unique challenge for ebook conversion because PDF is a fixed-layout format — it describes exactly where each glyph sits on a page, but it does not inherently encode paragraphs, chapters, or reading order in the way that EPUB or FB2 do. The converter uses pdf.js (Mozilla's PDF rendering library, version 3.11.174) to parse the PDF's internal structure. pdf.js decodes compressed content streams, processes font encoding maps, and assembles individual text runs into readable lines. Text is extracted page by page and concatenated with page break markers. The result preserves reading order and paragraph breaks but loses all visual formatting — fonts, sizes, colors, columns, and layout positioning are discarded. This is inherent to any PDF text extraction: the information simply does not map back to semantic structure.
RTF Stripping
Rich Text Format encodes formatting through control sequences prefixed with backslashes: \par for paragraph breaks, \b for bold, \i for italic, \fonttbl for font tables, and hundreds more. The converter uses a regex-based parser that processes RTF in three passes. First, \par sequences are converted to newline characters to preserve paragraph structure. Second, all remaining control sequences (backslash followed by alphabetic characters or special symbols) are removed. Third, hexadecimal escape sequences (\'XX patterns, where XX is a two-digit hex code) are decoded to their character equivalents. Finally, curly braces used for grouping are stripped. This approach works well for documents with standard text content — letters, manuscripts, legal documents — but may not perfectly handle complex RTF features like embedded objects, nested tables, or bidirectional text.
Custom Markdown Renderer
Rather than importing a full Markdown library like marked.js, the Ebook Converter uses a custom regex-based renderer that handles the Markdown features most common in ebook manuscripts. It supports three levels of headings (#, ##, ###), bold text (**text**), italic text (*text*), inline code (`code`), unordered lists (- item), blockquotes (> quote), and horizontal rules (---). The renderer intentionally does not support links, images, or tables — these features are uncommon in ebook manuscript content and would require a more complex parser. The rendered HTML uses Georgia serif typography with gray-background code spans and left-bordered blockquotes, matching the converter's overall reading-optimized output style.
8. The Preview System: Read Before You Convert
The Ebook Converter includes a preview system that lets you inspect file contents before committing to a conversion. This serves two purposes: it confirms that the file loaded correctly, and it gives you a sense of what content will be preserved in the output. Different formats receive different preview treatment based on their structure and typical file sizes.
- TXT and Markdown: The first 5,000 characters are displayed as plain text. This is typically enough to see the opening pages of a book and verify that encoding and line breaks are correct.
- HTML: The first 5,000 characters of the raw HTML source are shown, allowing you to inspect the markup structure before conversion.
- EPUB: The parser extracts the first 10 HTML files from the archive (following spine order when available), strips HTML tags from each, and combines the resulting text. This gives you a preview of the book's opening chapters without needing to decompress the entire archive.
- PDF: pdf.js renders the first 5 pages and extracts their text content. For a typical book, this covers the title page, copyright page, and the beginning of chapter one — enough to verify that text extraction is working correctly for that particular PDF.
- FB2: The
<body>element is extracted from the XML and its tags are stripped, producing a clean text preview of the book's opening content. - RTF: Control sequences are stripped using the same regex parser used for conversion, showing the underlying plain text.
When a preview exceeds the display limit, the converter appends a [... truncated] indicator so you know there is additional content beyond what is shown. The preview is purely informational — the full file is always used for the actual conversion regardless of what the preview displays.
9. Under the Hood: 4 JavaScript Libraries
The Ebook Converter relies on four specialized JavaScript libraries, each handling a specific domain of the conversion pipeline:
JSZip 3.10.1 — Handles all ZIP-related operations: decompressing EPUB archives to read their contents and compressing new ZIP archives when building EPUB output. JSZip supports both STORE (no compression) and DEFLATE (compressed) methods, which is essential for EPUB compliance — the mimetype file must be stored uncompressed while all other files use DEFLATE. The library operates on ArrayBuffers and can process multi-megabyte archives entirely in browser memory.
jsPDF 2.5.1 — Generates PDF documents from text content. The converter's textToPdf function creates A4-sized pages with Helvetica at 10.5 point, 20mm margins on all sides, and 5mm line height. Titles are rendered in Helvetica Bold at 18 point. jsPDF's splitTextToSize method handles automatic line wrapping — it measures the width of each word in the current font and breaks lines at the optimal point to fit within the page margins. When text exceeds a single page, the function automatically adds new pages and continues rendering, producing properly paginated multi-page documents.
pdf.js 3.11.174 — Mozilla's PDF rendering library, used here exclusively for text extraction from existing PDF files. pdf.js parses the PDF's cross-reference table, decodes compressed content streams, resolves font encoding maps (including CIDFont mappings for international text), and assembles individual glyph positions into readable text runs. It processes PDFs page by page, which allows the preview system to extract just the first 5 pages without processing the entire document.
FileSaver.js 2.0.5 — Handles the final step of every conversion: saving the generated output to the user's disk. FileSaver.js creates a Blob from the conversion output, generates a temporary object URL, programmatically clicks a download link, and cleans up the URL after the download initiates. It works around browser-specific quirks in download handling across Chrome, Firefox, Safari, and Edge.
10. Conversion Quality: What Gets Preserved (and What Doesn't)
Every format conversion involves tradeoffs. Understanding what survives each conversion path helps you choose the right output format and set realistic expectations.
What Gets Preserved Across All Paths
- Text content — The actual words of the book always survive. Character encoding is handled correctly for Latin, Cyrillic, CJK, and other Unicode text.
- Paragraph structure — Line breaks and paragraph divisions are maintained through all conversion paths, ensuring the text remains readable rather than collapsing into a single block.
- Chapter titles — When headings are present in the source (EPUB heading tags, FB2 title elements, Markdown # syntax), they are preserved in formats that support them (HTML, EPUB) and rendered as prominent text in formats that do not (TXT, PDF).
What Gets Lost
- Embedded images — The converter focuses on text content. Cover images, inline illustrations, and decorative graphics embedded in EPUB, FB2, or PDF files are not carried into the output. If your ebook relies heavily on images, the text-only output may be incomplete.
- Custom fonts and typography — EPUB files often embed custom fonts for body text, headings, and special characters. These are discarded during conversion. PDF output uses Helvetica; HTML output uses Georgia; EPUB output uses the reading system's default font.
- Complex layouts — Multi-column layouts, drop caps, pull quotes, sidebars, footnotes, and endnotes are flattened to linear text. PDF files with columnar layouts may produce text in an unexpected reading order.
- Table of Contents navigation — While the EPUB builder creates a basic navigation document, the detailed hierarchical table of contents from a source EPUB (with nested sub-sections) is simplified to a single-chapter structure.
- DRM-protected content — The converter cannot process DRM-encrypted EPUB or PDF files. These files will fail to parse because the content streams are encrypted and require decryption keys that the converter does not have.
The highest-fidelity conversion is FB2 to EPUB, because both formats use semantic markup (XML tags describing structure rather than appearance). The FB2 parser extracts cleanly structured content, and the EPUB builder wraps it in a valid package with proper metadata and navigation. For Russian-language literature distributed in FB2, converting to EPUB gives you a file that works on virtually every modern reading device.
11. Privacy: Your Books Never Leave Your Device
Ebooks are deeply personal. Your reading library reveals your interests, beliefs, political views, health concerns, and intellectual curiosities in ways that few other data collections can match. Uploading an ebook to a conversion server means trusting that server operator with this information — trusting that they do not log filenames, do not inspect content, do not retain copies, and do not sell metadata about what their users are converting.
The Ebook Converter eliminates this trust requirement entirely. The conversion pipeline works as follows: the browser's FileReader API reads your file from disk into an ArrayBuffer in local memory. JavaScript libraries process that ArrayBuffer — decompressing, parsing, transforming, and repackaging. The output is constructed as a Blob in memory. FileSaver.js triggers a download of that Blob to your disk. At no point in this chain does any network request occur. You can verify this yourself by opening your browser's Developer Tools, switching to the Network tab, and performing a conversion. You will see zero HTTP requests during the conversion process.
This architecture means the converter works offline. Once the page has loaded, you can disconnect from the internet entirely and conversions will continue to work. It also means there are no file size limits imposed by upload bandwidth or server processing timeouts — the only limit is your browser's available memory.
12. Common Workflows & Use Cases
Kindle-to-EPUB Migration. Amazon's ecosystem produces PDF exports from personal documents. Convert those PDFs to EPUB to get reflowable text that adapts to any screen size. The EPUB output works on Apple Books, Kobo, Google Play Books, and any EPUB-compatible reader.
FB2 Library Conversion. If you have a collection of Russian-language literature in FB2 format, batch-convert them to EPUB for compatibility with your preferred reading app. FB2 to EPUB is the converter's highest-fidelity path, preserving chapter structure and paragraph formatting.
Manuscript Preparation. Authors writing in Markdown or plain text can convert their manuscripts to EPUB for distribution or PDF for print review. The EPUB builder produces a valid package that can be uploaded to ebook distribution platforms, while the PDF generator creates a clean typeset document suitable for proofreading.
Web Article Archiving. Save web articles as HTML files, then convert them to EPUB or PDF for offline reading. HTML to EPUB wraps the article in a proper ebook package with metadata and navigation, while HTML to PDF produces a fixed-layout document that prints cleanly.
Project Gutenberg Formatting. Project Gutenberg distributes thousands of public domain titles as plain TXT files. Convert these to EPUB for a better reading experience on mobile devices, or to PDF for printing and binding physical copies.
RTF Legacy Recovery. Older legal documents, manuscripts, and business correspondence stored in RTF can be converted to modern formats. RTF to PDF produces archival documents, while RTF to EPUB creates reflowable ebooks from legacy content.
13. Ebook Converter vs. Calibre, Online-Convert & Zamzar
The ebook conversion landscape includes several established tools, each with different architectures, capabilities, and tradeoffs.
Calibre is the gold standard for ebook management and conversion. It is a free, open-source desktop application that supports dozens of input and output formats with deep control over conversion parameters — CSS injection, font embedding, metadata editing, heuristic processing for poorly structured files, and custom output profiles for specific reading devices. Calibre is extraordinarily powerful, but it requires installation (200+ MB), runs only on desktop operating systems, presents a complex interface with dozens of settings per conversion, and demands technical knowledge to use effectively. If you convert ebooks daily and need maximum control, Calibre is the right tool. If you need a quick conversion without installing software, it is overkill.
Online-Convert.com is a server-based conversion platform that handles ebooks alongside documents, images, audio, and video. You upload your file, select the target format, and download the result. The conversion happens on their servers, which means your file is transmitted over the internet and processed on hardware you do not control. They state that files are deleted after conversion, but you are trusting their infrastructure and policies. Online-Convert supports more format pairs than the Ebook Converter, but every conversion requires an upload, a server round-trip, and a download — which can be slow for large files on limited bandwidth connections.
Zamzar is a paid conversion service ($18/month for the Standard plan) that supports over 1,100 format pairs across all file types. Like Online-Convert, it is server-based: your files are uploaded, processed remotely, and made available for download. Zamzar offers email delivery of converted files and batch processing for paid tiers. For heavy users who need broad format support and do not mind server-side processing, Zamzar provides a polished experience. But for privacy-sensitive ebook conversion, the server-based model is the fundamental limitation.
The Ebook Converter's position is clear: it trades breadth of format support for absolute privacy and zero-friction access. No installation (unlike Calibre), no upload (unlike Online-Convert and Zamzar), no payment (unlike Zamzar), no server trust required. You open a web page, drop a file, and get your converted ebook. For the 25 conversion paths it supports, the output quality is comparable to server-based tools. For paths it does not support (like MOBI or AZW3 output), you will need Calibre or a server-based converter.
14. Frequently Asked Questions
Can I convert DRM-protected ebooks?
No. DRM-protected EPUB and PDF files encrypt their content streams, and the converter cannot decrypt them without authorization keys. You will need to use the ebook platform's own export or reading tools for DRM-protected content. The converter works only with DRM-free files.
Are images preserved during conversion?
No. The converter focuses on text content extraction and transformation. Embedded cover images, inline illustrations, and decorative graphics in EPUB, FB2, or PDF files are not carried into the output. If your ebook consists primarily of images (like a comic book or graphic novel), the converter is not the right tool.
What is the maximum file size I can convert?
There is no hard-coded file size limit. The practical limit is your browser's available memory. Most modern browsers can handle files up to 100–200 MB comfortably, though this depends on the format (EPUB decompression amplifies file size significantly because the ZIP contents must be held in memory). For typical ebooks (1–5 MB), memory is never a concern.
Does the converter work offline?
Yes. Once the page has fully loaded (including the four JavaScript libraries), you can disconnect from the internet and perform conversions. All processing is client-side. The only network activity on the page is Google Analytics and AdSense, neither of which affects conversion functionality.
Why does PDF to EPUB produce plain-looking output?
PDF is a fixed-layout format that encodes glyph positions rather than semantic structure. When extracting text from a PDF, the converter gets raw text with approximate paragraph breaks but no information about headings, bold text, font sizes, or chapter divisions. The resulting EPUB contains the correct text but lacks the structural richness of an EPUB built from a semantically structured source like FB2 or Markdown.
Can I convert multiple files at once?
The converter processes one file at a time. For batch conversions of large ebook libraries, Calibre's command-line tool (ebook-convert) is better suited. The Ebook Converter is optimized for quick, individual conversions where privacy and convenience matter more than batch throughput.
What is FB2 and why should I care about it?
FB2 (FictionBook 2) is an XML-based ebook format developed in Russia that became the standard for digital book distribution across Eastern Europe. If you read Russian-language literature or download from Eastern European ebook libraries, you will encounter FB2 files frequently. The converter lets you transform them into EPUB, PDF, HTML, or TXT for use with any reading app.
Does the Markdown converter support tables and links?
No. The converter uses a custom regex-based Markdown renderer that supports headings (h1–h3), bold, italic, inline code, unordered lists, blockquotes, and horizontal rules. Links, images, and tables are not supported. For Markdown with these advanced features, converting through an external tool like Pandoc and then importing the HTML output would be a better approach.
Will the EPUB output work on my Kindle?
Amazon Kindle devices do not natively support EPUB format. However, Amazon added EPUB support for Send to Kindle in 2022, so you can email or upload the EPUB file to your Kindle library through Amazon's Send to Kindle service. Alternatively, convert to PDF instead — Kindle natively supports PDF files, though they will not reflow text to fit different screen sizes.
How does the converter handle non-Latin text (Cyrillic, CJK, Arabic)?
The converter processes text as UTF-8 Unicode throughout the pipeline. Cyrillic text in FB2 and EPUB files converts correctly. CJK (Chinese, Japanese, Korean) characters are preserved in text extraction. However, the PDF generator uses Helvetica, which has limited glyph coverage for non-Latin scripts — PDF output for CJK or Arabic text may show missing characters. For non-Latin text, EPUB, HTML, or TXT output formats are recommended.
15. Conclusion
The Ebook Converter occupies a specific and useful niche in the ebook tooling landscape. It is not trying to replace Calibre's exhaustive format coverage or compete with paid services on breadth of features. Instead, it provides the 25 most common ebook conversion paths with a zero-trust privacy model and zero-installation convenience. You open a web page, select a file, choose a format, and get your converted ebook. No server touches your data. No account is required. No software is installed.
The technical foundation is solid: JSZip handles EPUB archive operations with proper compression modes, the EPUB 3.0 builder produces standards-compliant packages that validate and open in all major reading systems, the FB2 parser handles the semantic XML structure that most Western converters ignore, and pdf.js extracts text from PDF documents with the same engine that powers Firefox's built-in PDF viewer. The four libraries together cover the complete pipeline from file ingestion through format transformation to output generation.
If your ebook workflow involves converting between EPUB, PDF, TXT, HTML, FB2, RTF, and Markdown — and you would rather not upload your reading material to a server — the Ebook Converter is the tool that does exactly that, entirely in your browser.
Related Articles
Published: March 25, 2026