Convert IPYNB to EPUB

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

IPYNB vs EPUB Format Comparison

Aspect IPYNB (Source Format) EPUB (Target Format)
Format Overview
IPYNB
Jupyter Notebook

Interactive computational notebook format used in data science, machine learning, and scientific computing. Contains code cells, markdown text, and rich output including visualizations. Based on JSON structure with cells for code execution and documentation.

Interactive Data Science
EPUB
Electronic Publication

EPUB is the most widely supported open ebook format, maintained by the W3C. It uses HTML/CSS content within a ZIP container, supporting reflowable text that adapts to different screen sizes. EPUB is the standard format for digital books across most e-readers, libraries, and bookstores (except Amazon Kindle).

Ebook Open Standard
Technical Specifications
Structure: JSON with cells array
Encoding: UTF-8 JSON
Format: Open format (Jupyter/IPython)
Cell Types: Code, Markdown, Raw
Extensions: .ipynb
Structure: ZIP archive with XHTML/CSS content
Encoding: UTF-8 (XHTML content)
Standard: EPUB 2.0.1 (IDPF/W3C)
MIME Type: application/epub+zip
Extensions: .epub
Syntax Examples

IPYNB uses JSON cell structure:

{
  "cell_type": "code",
  "source": ["import pandas as pd\n",
             "df = pd.read_csv('data.csv')"],
  "outputs": [{"output_type": "stream",
               "text": ["   col1  col2\n"]}]
}

EPUB uses XHTML content within a ZIP container:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Chapter 1</title></head>
<body>
  <h1>Introduction</h1>
  <p>Welcome to the ebook.</p>
</body>
</html>
Content Support
  • Python/R/Julia code cells
  • Markdown text with formatting
  • Code execution outputs
  • Inline visualizations (matplotlib, plotly)
  • LaTeX math equations
  • HTML/SVG output
  • Embedded images
  • Metadata and kernel info
  • Reflowable XHTML text content
  • CSS styling and typography
  • Embedded images (JPEG, PNG, SVG)
  • Table of contents (NCX navigation)
  • Metadata (title, author, language)
  • Multiple chapters and sections
  • Bookmarks and internal links
Advantages
  • Interactive code execution
  • Mix of code and documentation
  • Rich visualizations
  • Reproducible research
  • Multiple language kernels
  • Industry standard for data science
  • Open standard, no vendor lock-in
  • Supported by most e-readers (Kobo, Nook)
  • Reflowable text adapts to screen size
  • Built-in navigation and table of contents
  • Adjustable font sizes and styles
  • Used by libraries and digital bookstores
Disadvantages
  • Large file sizes (embedded outputs)
  • Difficult to version control
  • Requires Jupyter to edit interactively
  • Non-linear execution issues
  • Not suitable for production code
  • Not supported natively by Kindle devices
  • Code formatting limited on some readers
  • No interactive code execution
  • Complex layouts may not render well
  • Limited math equation support in EPUB 2
Common Uses
  • Data analysis and exploration
  • Machine learning experiments
  • Scientific research and papers
  • Educational tutorials
  • Data visualization
  • Prototyping algorithms
  • Digital book publishing
  • Educational textbooks
  • Technical documentation ebooks
  • Library lending systems
  • Offline reading on mobile devices
Best For
  • Data science and machine learning workflows
  • Interactive code exploration and prototyping
  • Reproducible research and analysis
  • Educational tutorials and demonstrations
  • Digital book distribution and publishing
  • Reflowable reading on e-readers and tablets
  • Library lending and open-access content
  • Cross-platform offline reading
Version History
Introduced: 2014 (Project Jupyter)
Current Version: nbformat 4.5
Status: Active, widely adopted
Evolution: From IPython Notebook to Jupyter ecosystem
Introduced: 2007 (IDPF)
Current Version: EPUB 3.2
Status: Active, maintained by W3C
Evolution: From OEB to EPUB 2 to EPUB 3 under W3C
Software Support
Jupyter: Native format
VS Code: Full support
Google Colab: Full support
Other: JupyterLab, nteract, Kaggle, DataBricks
E-Readers: Kobo, Nook, Sony Reader, PocketBook
Apps: Apple Books, Google Play Books, Calibre
Desktop: Calibre, Adobe Digital Editions, Thorium
Creation: Sigil, Calibre, Pandoc, nbconvert

Why Convert IPYNB to EPUB?

Converting Jupyter Notebooks to EPUB format creates portable ebooks from your data science tutorials, research notebooks, and educational content. EPUB is the most widely supported open ebook format, readable on virtually every e-reader, tablet, and smartphone except Amazon Kindle.

EPUB's reflowable text layout ensures your notebook content looks great on any screen size, from small phone screens to large tablet displays. The reader can adjust font size, style, and margins for comfortable reading, making it ideal for studying code tutorials on the go.

This conversion is particularly valuable for educators and authors who create coding tutorials, data science courses, and technical learning materials. Students can download the EPUB and study offline using their preferred reading app, with bookmarks and highlights for important sections.

Key Benefits of Converting IPYNB to EPUB:

  • Cross-Platform Reading: Works on Kobo, Nook, Apple Books, and mobile apps
  • Open Standard: No vendor lock-in, supported by the W3C
  • Reflowable Text: Content adapts to any screen size automatically
  • Offline Access: Download and read without internet connection
  • Navigation: Auto-generated table of contents from notebook headings
  • Educational Use: Ideal for distributing tutorials and coursework
  • Library Compatible: Works with digital lending systems like OverDrive

Practical Examples

Example 1: Programming Tutorial to EPUB

Input IPYNB file (notebook.ipynb):

{
  "cells": [
    {
      "cell_type": "markdown",
      "source": ["# Learn Python: File Handling\n",
                  "## Chapter 7: Reading and Writing Files\n",
                  "Python provides built-in functions for file operations."]
    },
    {
      "cell_type": "code",
      "source": ["# Writing to a file\n",
                  "with open('output.txt', 'w') as f:\n",
                  "    f.write('Hello from Python!')\n",
                  "\n",
                  "# Reading from a file\n",
                  "with open('output.txt', 'r') as f:\n",
                  "    content = f.read()\n",
                  "    print(content)"],
      "outputs": [{"text": "Hello from Python!"}]
    }
  ]
}

Output EPUB file (notebook.epub):

[EPUB Ebook with Table of Contents]

Chapter: Learn Python: File Handling
Section: Chapter 7: Reading and Writing Files

  Python provides built-in functions
  for file operations.

  [Code Block - monospaced, styled]
  # Writing to a file
  with open('output.txt', 'w') as f:
      f.write('Hello from Python!')

  # Reading from a file
  with open('output.txt', 'r') as f:
      content = f.read()
      print(content)

  Output: Hello from Python!

  [Navigation: TOC links to all chapters]

Example 2: Data Science Book to EPUB

Input IPYNB file (analysis.ipynb):

{
  "cells": [
    {
      "cell_type": "markdown",
      "source": ["# Data Cleaning Techniques\n",
                  "## Handling Missing Values\n",
                  "Missing data is a common challenge in real-world datasets.\n",
                  "There are several strategies to handle it:"]
    },
    {
      "cell_type": "code",
      "source": ["import pandas as pd\n",
                  "import numpy as np\n",
                  "df = pd.DataFrame({'A': [1, np.nan, 3], 'B': [4, 5, np.nan]})\n",
                  "print('Before:', df.isnull().sum().to_dict())\n",
                  "df_filled = df.fillna(df.mean())\n",
                  "print('After:', df_filled.isnull().sum().to_dict())"],
      "outputs": [{"text": "Before: {'A': 1, 'B': 1}\nAfter: {'A': 0, 'B': 0}"}]
    }
  ]
}

Output EPUB file (analysis.epub):

[EPUB Ebook with Navigation]

Chapter: Data Cleaning Techniques
Section: Handling Missing Values

  Missing data is a common challenge in
  real-world datasets. There are several
  strategies to handle it:

  [Code Block - monospaced, styled]
  import pandas as pd
  import numpy as np
  df = pd.DataFrame({
      'A': [1, np.nan, 3],
      'B': [4, 5, np.nan]
  })
  print('Before:', df.isnull().sum().to_dict())
  df_filled = df.fillna(df.mean())
  print('After:', df_filled.isnull().sum().to_dict())

  Output:
  Before: {'A': 1, 'B': 1}
  After: {'A': 0, 'B': 0}

Example 3: Course Notes to EPUB

Input IPYNB file (research.ipynb):

{
  "cells": [
    {
      "cell_type": "markdown",
      "source": ["# Statistics 201: Hypothesis Testing\n",
                  "## The t-Test\n",
                  "A t-test compares means between two groups."]
    },
    {
      "cell_type": "code",
      "source": ["from scipy import stats\n",
                  "group_a = [23, 25, 28, 22, 27]\n",
                  "group_b = [30, 32, 29, 35, 31]\n",
                  "t_stat, p_value = stats.ttest_ind(group_a, group_b)\n",
                  "print(f't-statistic: {t_stat:.4f}')\n",
                  "print(f'p-value: {p_value:.4f}')\n",
                  "print(f'Significant: {p_value < 0.05}')"],
      "outputs": [{"text": "t-statistic: -3.7417\np-value: 0.0057\nSignificant: True"}]
    }
  ]
}

Output EPUB file (research.epub):

[EPUB Ebook with Bookmarks]

Chapter: Statistics 201: Hypothesis Testing
Section: The t-Test

  A t-test compares means between two groups.

  [Code Block - monospaced, styled]
  from scipy import stats
  group_a = [23, 25, 28, 22, 27]
  group_b = [30, 32, 29, 35, 31]
  t_stat, p_value = stats.ttest_ind(
      group_a, group_b)
  print(f't-statistic: {t_stat:.4f}')
  print(f'p-value: {p_value:.4f}')
  print(f'Significant: {p_value < 0.05}')

  Output:
  t-statistic: -3.7417
  p-value: 0.0057
  Significant: True

Frequently Asked Questions (FAQ)

Q: Can I read the EPUB file on a Kindle?

A: Kindle devices do not natively support EPUB. However, you can convert the EPUB to AZW3 or MOBI using Calibre for Kindle compatibility. Alternatively, use the ipynb_to_azw3 conversion on our site for direct Kindle support.

Q: How does code appear in the EPUB ebook?

A: Code cells are formatted as pre-formatted text blocks with monospaced fonts. The EPUB includes CSS styling to visually distinguish code from regular text. On e-readers with good CSS support, code blocks appear with proper formatting and optional background shading.

Q: Is a table of contents automatically created?

A: Yes. Headings from markdown cells are used to build the EPUB's navigation table of contents (NCX). This allows readers to jump between sections using their e-reader's built-in navigation features.

Q: What e-readers support the EPUB format?

A: Most e-readers support EPUB, including Kobo, Barnes & Noble Nook, Sony Reader, and PocketBook. Reading apps like Apple Books, Google Play Books, Calibre, and Adobe Digital Editions also provide full EPUB support.

Q: Are images from notebook outputs included?

A: Static images (matplotlib plots saved as PNG/JPEG) embedded in the notebook may be included in the EPUB as embedded images. Interactive visualizations cannot be displayed in EPUB and are represented as text alternatives.

Q: Can I customize the EPUB styling?

A: After conversion, you can edit the EPUB using Sigil or Calibre's editor to modify CSS styles, fonts, and layout. EPUB uses standard HTML and CSS internally, so any web developer can customize the styling.

Q: Is this EPUB 2 or EPUB 3?

A: This converter produces EPUB 2.0.1 format, which has the widest compatibility across e-readers and reading applications. For EPUB 3 with enhanced HTML5 support, see our IPYNB to EPUB3 conversion.

Q: Can I publish the EPUB on digital bookstores?

A: The converted EPUB can serve as a foundation for publishing. Most bookstores (Apple Books, Google Play Books, Kobo) accept EPUB submissions. You may want to polish metadata, add a cover image, and review formatting before submission.