Jupyter (IPYNB) to PDF

Convert Jupyter notebook text, code and saved outputs into a PDF.

Processed only in this browser
Document selection and settings

Files are never uploaded. Reading happens in this tab without changing the original.

One IPYNB · up to 12 MB / 300 cells

PDF options

When wrapping is off, long code lines shrink to 6 pt, then wrap if still too wide. Headings, lists, basic tables, text and PNG/JPEG are supported. HTML, widgets, equation typesetting and attached images are not reproduced.

Code is never executed; only saved results are used. The PDF is a readable document, not an exact reproduction of Jupyter’s layout.

How to use this tool

  1. Open an IPYNB v4 file or the example and inspect text, code and saved outputs. For fresh results, first run and save a copy in Jupyter.
  2. Choose whether to include code and saved outputs, then set paper, margins and long-code wrapping.
  3. Create and download the PDF. Check the final table row, long code, text and images; the original IPYNB stays unchanged.

An analysis record with the saved total 60

Input and settings
IPYNB v4: Markdown + values = [10, 20, 30]; print(sum(values)) + stored stdout "60\n"; include code and outputs
Result
A PDF containing the explanation, literal code and stored result 60 in order

The saved stdout is read from the example. No code is recalculated and a notebook without stored output does not gain a new result.

Turn notebook content into a readable document

When sharing an analysis as PDF, choose which explanations, code and saved results to include. IPYNB v4 Markdown, code, raw cells and stored text/PNG/JPEG outputs are read in order. The preview checks content, while the PDF is paginated for A4 or US Letter and your chosen margins.

Basic Markdown headings, lists, links, emphasis, code blocks and tables are rebuilt as readable PDF content. Jupyter fonts, colors, complex merged tables, equation typesetting and the original screen layout are not preserved. Hiding code or outputs applies to both the preview and PDF.

Saved outputs and supported limits

No Python or other kernel runs and no external image or link is fetched. HTML, JavaScript, widgets, SVG, video and attached images are not rendered. Plain-text fallbacks are used where provided, with a notice about unsupported rich output. HTML in a Markdown cell appears as inert text.

Input limits are 12 MB, 300 cells and 400,000 text characters. Each image is limited to 8 MB/16 million pixels; all images together are limited to 16 MB/32 million pixels. A PDF can contain up to 120 pages. Unsupported font characters, including some emoji, produce an error while preserving the source. Use a smaller copy when a limit is exceeded.

Local processing and downloads

Documents and PDFs are processed in this tab’s memory. They are not sent to a server, analytics, the URL or persistent browser storage. The first PDF export downloads a self-hosted font; that request contains no document content.

The PDF includes selected code and stored outputs. Check for passwords, tokens and personal information before sharing. Downloaded PDFs remain on your device; the original notebook is never changed.

Common questions

Are old outputs recalculated?

No. Only results already stored in the file are exported. Run and save the notebook in Jupyter first if you need fresh results.

Will HTML reports and interactive plots appear?

HTML and widgets never execute. Only stored PNG/JPEG images or plain-text fallbacks can be included. Compare with Jupyter export when exact typesetting matters.

How are Korean text and long code handled?

Self-hosted fonts supporting Korean, Latin, Chinese, Japanese, and basic Greek/Cyrillic are embedded in the PDF. Long lines wrap by default. With wrapping off, long code shrinks to 6 pt, then wraps where needed to avoid cutting off content.

Can I save a report with results but no code?

Turn off Include code and keep Include saved outputs on to retain explanations and saved results. The file must already contain those outputs. Compare with Jupyter before sharing because stored results may not reflect the current code.

Standards and references

Read alongside this tool