Skip to main content
Tips

5 Ways to Convert .ipynb Files to PDF

You cannot share Jupter Notebook's ipynb files with everyone. However, if you convert it to PDF, sharing becomes easier. Here's how to do it.

Abhishek Kumar

Warp Terminal

As someone who spends hours working in Jupyter Notebooks, I’ve grown quite fond of its versatility. Markdown for clean documentation, code cells for experimentation, and inline visualizations, it’s a productivity haven.

Over time, I started using Jupyter not just for work but also for personal notes, ideas, and even planning.

Sharing insights with colleagues became second nature. But I quickly learned that not everyone speaks "Jupyter."

I once shared a .ipynb file with a friend, excited to show her a new analysis I had done. Fifteen minutes later, my phone rang. “What do I do with this file?” she asked.

The next 30 minutes were spent explaining how to install Python, set up Jupyter, and open the file, etc.

That’s when I realized: sharing a PDF, something universally readable, could save time, frustration, and my sanity.

This guide is here to ensure you don’t fall into the same trap. Whether you’re collaborating with a colleague, presenting your work, or archiving your analysis, converting .ipynb files to PDF can simplify the process.

📋
For demonstration purposes, I’ll be using a notebook downloaded from this fantastic GitHub repository. If you're looking for a collection of notebooks, that showcase multiple aspects of IPython, from its basic use to more advanced scenarios.

1. Using the Jupyter notebook UI

For those new to Jupyter, the built-in export option is the simplest way to get started:

  • Open your .ipynb file in Jupyter Notebook.
  • Navigate to File > Save and Export Notebook As > PDF.
  • Wait for the system to process your file and download the PDF.
jupyter webui method to convert ipynb to pdf

Jupyter’s nbconvert tool leverages LaTeX to generate PDFs, preserving formatting and structure.

2. Using nbconvert command-line tool

If you need more control or want to automate the process, nbconvert is the way to go. It converts your notebook to an intermediate LaTeX format, then compiles it into a PDF.

🚧
PDF conversion with nbconvert requires pandoc to be installed. You can install it from Pandoc’s official website or your operating system’s package manager.

Install the necessary tools:

pip install nbconvert
installing nbconvert using pip

Run the following command:

jupyter nbconvert --to pdf your_notebook.ipynb
converting ipynb file to pdf using nbconvert

The PDF will save in the same directory as your notebook.

nbconvert is excellent for batch processing or automation and it works well for advanced workflows.

3. Using Google Colab

If you prefer not to install additional software, Google Colab provides a browser-based solution. Google Colab renders the notebook as a browser-friendly document, which can then be exported.

Upload your .ipynb file to Google Colab.

uploading ipynb file to google collab

Navigate to File > Print :

getting to the print menu of google collab

and select Save as PDF:

print prompt inside google collab

The only limiting factor here is the formatting options and reliance on Google Colab’s rendering capabilities.

4. Using online tools

When you search online for ways to convert .ipynb files to PDF, you’ll find a plethora of websites offering this service.

The process is usually straightforward: you upload your notebook, the tool processes it on their server, and you download the resulting PDF.

vertopal homepage
Vertopal is one such site that can easy conversion of ipynb file to pdf

This method is particularly convenient when you’re in a hurry or working on a device where installing software isn’t feasible.

However, there are some important considerations to keep in mind. Since these tools process your file on external servers, they may not be the best choice for sensitive or confidential data.

5. Converting different file types to PDF

If you work with more than just Jupyter Notebooks and need to convert other file types like HTML to PDF, Python provides versatile libraries for the job.

One of the most popular libraries for this is pdfkit. It allows you to programmatically convert HTML files into high-quality PDFs.

💡
Before using this code, make sure you have pdfkit installed in your Python environment. However, pdfkit relies on an external tool called wkhtmltopdf. This must be installed separately, as it handles the actual rendering of HTML to PDF.

Here's an example of a short python script to convert existing html document into a pdf:

import pdfkit

input_file = "input.html"
output_file = "output.pdf"
pdfkit.from_file(input_file, output_file)
python script to convert html document to pdf

to run this script, type:

python3 ./your-script-name.py
running the script and also listing the output file
You can see the output file saved in the same directory.

The library offers customization options such as setting page size, margins, or embedding fonts.

Additionally, this approach can be adapted for automating batch conversions or integrating PDF generation into larger Python projects, making it a versatile solution for developers.

Best practices for smooth conversion

  1. Clean Your Notebook: Remove unnecessary cells and outputs to keep the PDF concise.
  2. Format with Markdown: Use headers and descriptive text for clarity.
  3. Run All Cells: Ensure outputs are up-to-date before converting.
  4. Preview and Test: Always review the PDF for formatting issues.
  5. Back Up Your Notebook: Retain the .ipynb file as your source document.

Troubleshooting tips

  • Missing LaTeX: Install a TeX distribution like TeX Live or MiKTeX.
  • Encoding Errors: Save your .ipynb file in UTF-8 encoding.
  • Large Outputs: Clear unnecessary outputs to reduce file size.
  • Formatting Issues: Use standard fonts and avoid overly complex layouts.

Conclusion

Jupyter Notebooks are a fantastic tool for interactive coding and documentation, but their unique format isn’t always ideal for sharing.

Whether you’re collaborating with non-technical colleagues, submitting polished reports, or simply looking to save time, converting your notebook to PDF is a straightforward and effective solution.

For me, making the switch to PDFs has saved countless hours of troubleshooting and ensured my work is always accessible and professional.

It’s freeing to focus on the real value, my analysis and insights, rather than worrying about compatibility issues.

I hope this guide has equipped you with the tools and confidence to share your work effortlessly.

No matter which method you choose, you’re now ready to present your Jupyter Notebooks in a universally readable format. Happy converting!

Abhishek Kumar