Why not just print the notebook from your browser
Jupyter's own print-to-PDF output is functional but rough: code blocks break awkwardly across pages, long outputs get clipped, and the typography is whatever your browser's print engine defaults to. This renders the same content through a proper typesetting engine instead, so code stays readable, images scale correctly, and page breaks land in sensible places.
What gets rendered
Markdown cells come through as formatted text, headings and all. Code cells keep their execution order and syntax highlighting. Text output, images, and error tracebacks each get their own clearly styled block, so a stack trace never gets mistaken for regular output.
Frequently asked questions
Does this run my notebook's code?
No. It only renders what's already in the file — the code cells and whatever outputs were saved the last time you ran the notebook. Nothing gets executed on our end.
What happens to images and errors in my notebook?
Chart and image outputs are embedded directly in the PDF. Error tracebacks get their own clearly marked block instead of blending into the code.
Is there a file size limit?
Free conversions are capped at 5MB. Pro removes that limit and drops the footer credit on the last page.
Do you keep a copy of my notebook?
No. Your file is processed to generate the PDF and isn't retained afterward.