[{"data":1,"prerenderedAt":701},["ShallowReactive",2],{"blog-post-en-jupyter-notebook-to-pdf-without-latex":3,"surround-\u002Fen\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex":694},{"id":4,"title":5,"author":6,"body":7,"category":672,"date":673,"description":674,"extension":675,"h1":676,"image":677,"lastmod":673,"locales":678,"meta":680,"navigation":681,"path":682,"promo":683,"seo":687,"stem":688,"tags":689,"__hash__":693},"blog\u002Fen\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex.md","How to Convert a Jupyter Notebook to PDF Without LaTeX","MinoPDF Team",{"type":8,"value":9,"toc":643},"minimark",[10,23,26,60,65,70,73,87,93,97,119,122,139,143,146,180,183,199,203,206,294,297,307,311,356,359,363,377,384,397,401,404,421,427,431,437,443,447,450,470,473,477,480,494,500,504,507,510,514,517,520,524,529,532,536,545,549,555,559,565,569,572,576,582,586,592,596,602,606,617,621],[11,12,13,14,18,19,22],"p",{},"To convert a Jupyter Notebook to a PDF you have three options: export it from Jupyter with ",[15,16,17],"code",{},"nbconvert"," and a TeX installation, print the notebook from your browser, or run the ",[15,20,21],{},".ipynb"," file through a converter that lays the notebook out for you. The first two need a working Python environment on the machine you are sitting at. The third does not — it reads the notebook JSON and draws it directly.",[11,24,25],{},"Which one you want depends on what you have:",[27,28,29,40,46],"ul",{},[30,31,32,36,37,39],"li",{},[33,34,35],"strong",{},"You have Jupyter running and LaTeX installed"," → ",[15,38,17],{}," is the canonical route, and it typesets formulas properly.",[30,41,42,45],{},[33,43,44],{},"You just need a readable copy right now"," → your browser's print dialog works, but you get the live page, including the UI around it.",[30,47,48,36,54,59],{},[33,49,50,51,53],{},"You have a ",[15,52,21],{}," file and nothing installed",[55,56,58],"a",{"href":57},"\u002Ftools\u002Fconvert\u002Fipynb-to-pdf","convert the notebook to PDF"," in your browser.",[61,62,64],"h2",{"id":63},"why-the-usual-route-needs-so-much-setup","Why the usual route needs so much setup",[11,66,67,69],{},[15,68,17],{}," is the official exporter, and for the PDF target it does not write PDF directly. It converts the notebook to LaTeX first and then runs a TeX engine over it. That means a working TeX distribution — several gigabytes if you install the full thing — plus any LaTeX packages your notebook happens to use.",[11,71,72],{},"That is fine on a machine you control. It is a lot to ask when you:",[27,74,75,78,81,84],{},[30,76,77],{},"received a notebook from someone else and only need to read or share it,",[30,79,80],{},"are on a managed laptop where installing TeX is not an option,",[30,82,83],{},"exported from Google Colab and just want the file on disk,",[30,85,86],{},"are sending the notebook to someone who will never open Jupyter at all.",[11,88,89,90,92],{},"A browser-based converter avoids the dependency chain entirely: ",[15,91,21],{}," is a JSON file, and everything needed to lay it out — markdown cells, code cells, saved outputs, embedded images — is already inside it.",[61,94,96],{"id":95},"convert-a-notebook-to-pdf-in-your-browser","Convert a notebook to PDF in your browser",[98,99,100,107,113,116],"ol",{},[30,101,102,103,106],{},"Open the ",[55,104,105],{"href":57},"IPYNB to PDF converter",".",[30,108,109,110,112],{},"Add one or more ",[15,111,21],{}," files. Notebooks downloaded from Google Colab work as they are.",[30,114,115],{},"Choose what to include — code cells, saved outputs, images and charts, line numbers, error outputs — then set page size, orientation, theme, font size and margins.",[30,117,118],{},"Check the preview and download. Each notebook becomes its own PDF, or you can take them together as a ZIP. Up to 50 notebooks per run, with no signup.",[11,120,121],{},"The converter shows a summary as it reads the file — how many cells were found, how many images, and how many outputs had to be skipped. That summary is worth a glance before you download, because it tells you whether anything was left out.",[123,124,125,126,125,135],"figure",{},"\n  ",[127,128],"img",{"src":129,"width":130,"height":131,"loading":132,"decoding":133,"alt":134},"\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex\u002Fipynb-tool-input-and-options.webp",1280,900,"lazy","async","MinoPDF IPYNB to PDF tool with analysis-report.ipynb loaded, a preview of markdown, code and chart pages, and the options panel showing the five include switches, page size, orientation, font size, margin and theme",[136,137,138],"figcaption",{},"Add the notebook, decide what to include, set the layout — then convert. The summary line reports how many outputs were skipped.",[61,140,142],{"id":141},"what-actually-goes-into-the-pdf","What actually goes into the PDF",[11,144,145],{},"A notebook is a list of cells, and the PDF follows that order:",[27,147,148,154,164,174],{},[30,149,150,153],{},[33,151,152],{},"Markdown cells"," become headings, paragraphs, lists, tables and horizontal rules.",[30,155,156,159,160,163],{},[33,157,158],{},"Code cells"," are drawn in a monospace block, keeping indentation, with an ",[15,161,162],{},"In [n]"," label.",[30,165,166,169,170,173],{},[33,167,168],{},"Saved outputs"," keep their own monospace blocks with ",[15,171,172],{},"Out [n]"," labels. Error tracebacks get a visually distinct block.",[30,175,176,179],{},[33,177,178],{},"PNG and JPEG charts"," are embedded as images at the size they were saved.",[11,181,182],{},"Nothing is recomputed. If a cell has no saved output, there is nothing to draw for it — see the section on missing outputs below.",[123,184,125,185,125,190],{},[127,186],{"src":187,"width":130,"height":188,"loading":132,"decoding":133,"alt":189},"\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex\u002Fnotebook-pdf-output.webp",1000,"A page of the exported notebook PDF showing the document title, a table of contents built from markdown headings, a code block labelled In [1], an output block labelled Out [1], and a footer with the page number",[136,191,192,193,195,196,198],{},"The PDF follows the notebook cell by cell: markdown, code cells with ",[33,194,162],{}," labels, saved outputs with ",[33,197,172],{}," labels, and a repeated footer with page numbers. Charts, when the notebook has them, are embedded as images.",[61,200,202],{"id":201},"choose-what-goes-in-the-five-switches","Choose what goes in: the five switches",[11,204,205],{},"The most useful part of the export is deciding what a reader actually needs to see.",[207,208,209,225],"table",{},[210,211,212],"thead",{},[213,214,215,219,222],"tr",{},[216,217,218],"th",{},"Option",[216,220,221],{},"Include it when",[216,223,224],{},"Leave it out when",[226,227,228,242,255,268,281],"tbody",{},[213,229,230,236,239],{},[231,232,233],"td",{},[33,234,235],{},"Include code cells",[231,237,238],{},"A reviewer or colleague needs to read the code",[231,240,241],{},"You are delivering a report and only the narrative, charts and results matter",[213,243,244,249,252],{},[231,245,246],{},[33,247,248],{},"Include saved outputs",[231,250,251],{},"The results are the point of the document",[231,253,254],{},"You want a clean reading copy without printed dataframes",[213,256,257,262,265],{},[231,258,259],{},[33,260,261],{},"Include images and charts",[231,263,264],{},"Charts carry the argument",[231,266,267],{},"You need a much smaller file — images dominate notebook PDF size",[213,269,270,275,278],{},[231,271,272],{},[33,273,274],{},"Number code lines",[231,276,277],{},"You will discuss specific lines with someone",[231,279,280],{},"You want the least visual noise",[213,282,283,288,291],{},[231,284,285],{},[33,286,287],{},"Include error outputs",[231,289,290],{},"The traceback is part of the record",[231,292,293],{},"You are sharing a finished notebook and stale errors would confuse the reader",[11,295,296],{},"Turning code cells off turns a notebook into something close to a report: headings, prose, charts and results, with no source code. Turning images off is the fastest way to shrink the file.",[123,298,125,299,125,304],{},[127,300],{"src":301,"width":130,"height":302,"loading":132,"decoding":133,"alt":303},"\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex\u002Fnotebook-switches.webp",720,"Two exports of the same notebook side by side: one with code cells included for review, one with code cells turned off for a report with narrative, results and charts",[136,305,306],{},"Same notebook, same file, two different readers: code cells on for a reviewer, off for a report. The notebook file itself is never modified.",[61,308,310],{"id":309},"layout-settings-that-matter","Layout settings that matter",[27,312,313,319,329,339],{},[30,314,315,318],{},[33,316,317],{},"Page size"," — A4 or Letter.",[30,320,321,324,325,328],{},[33,322,323],{},"Orientation"," — Portrait for normal reading; ",[33,326,327],{},"Landscape"," for notebooks with wide dataframes or large charts.",[30,330,331,334,335,338],{},[33,332,333],{},"Font size"," and ",[33,336,337],{},"Margin"," — the two knobs to use when a notebook is just slightly too long or too wide for the page.",[30,340,341,344,345,348,349,352,353,106],{},[33,342,343],{},"Theme"," — three options: ",[33,346,347],{},"Light (shaded blocks)"," for screen, ",[33,350,351],{},"Print (ink-saving, no shading)"," which drops the grey backgrounds behind code and output blocks and marks them with a thin rule instead, and ",[33,354,355],{},"Dark (screen reading)",[11,357,358],{},"Long code lines wrap rather than running off the edge of the page, so a wide dataframe is readable in portrait if you drop the font size a little.",[61,360,362],{"id":361},"titles-contents-and-page-numbers","Titles, contents and page numbers",[11,364,365,366,369,370,334,373,376],{},"The converter can write a ",[33,367,368],{},"Document title",", ",[33,371,372],{},"Author",[33,374,375],{},"Date"," at the top of the PDF — and into the PDF's own metadata, so the file identifies itself correctly when someone opens it.",[11,378,379,380,383],{},"Turn on ",[33,381,382],{},"Add a table of contents"," and it is built from your Markdown headings, with the real page number each heading lands on. This is the single setting that most improves a long notebook: heading levels are already in the file, and a real table of contents makes a 40-page export navigable.",[11,385,386,334,389,392,393,396],{},[33,387,388],{},"Header text",[33,390,391],{},"Footer text"," repeat on every page, and ",[33,394,395],{},"Show page numbers"," adds the numbering. A footer with the notebook name and page number is worth setting before you print anything.",[61,398,400],{"id":399},"notebooks-from-google-colab","Notebooks from Google Colab",[11,402,403],{},"Colab can export to PDF itself, but the result is a print of the live page and often splits wide output across awkward page breaks. If you want a file you control:",[98,405,406,412,415],{},[30,407,408,409,106],{},"In Colab, choose ",[33,410,411],{},"File → Download → Download .ipynb",[30,413,414],{},"Upload that file to the converter.",[30,416,417,418,420],{},"Use ",[33,419,327],{}," with a smaller margin — Colab notebooks tend to hold wide dataframes and large charts.",[11,422,423,424,426],{},"The downloaded ",[15,425,21],{}," contains the outputs as they were last saved, so run the notebook in Colab first if you need fresh results.",[61,428,430],{"id":429},"several-notebooks-at-once","Several notebooks at once",[11,432,433,434,436],{},"Add as many ",[15,435,21],{}," files as you need. By default each one becomes its own PDF, downloadable individually or together as a ZIP.",[11,438,379,439,442],{},[33,440,441],{},"Merge all notebooks into one PDF"," and they are concatenated in file order into a single document, each keeping its own content and pagination. Use merge when the notebooks are chapters of one deliverable; leave it off when they are separate submissions.",[61,444,446],{"id":445},"why-some-outputs-are-missing","Why some outputs are missing",[11,448,449],{},"Three situations produce an incomplete PDF, and none of them are silent:",[98,451,452,458,464],{},[30,453,454,457],{},[33,455,456],{},"The output was never saved."," A cell that was never run, or whose output was cleared, has nothing to render. Run the notebook in Jupyter or Colab and save it again.",[30,459,460,463],{},[33,461,462],{},"The output cannot be drawn."," SVG graphics the browser could not rasterize, very large JSON blobs, and output types with no text or image representation are skipped and listed in the report.",[30,465,466,469],{},[33,467,468],{},"The output is interactive."," JavaScript widgets and iframes are never reproduced — a PDF cannot run them.",[11,471,472],{},"Check the summary the converter shows after reading the file. It reports how many outputs were skipped, which tells you whether the PDF is complete before you send it anywhere.",[61,474,476],{"id":475},"latex-formulas-kept-as-source-not-typeset","LaTeX formulas: kept as source, not typeset",[11,478,479],{},"This is the one thing the browser route genuinely cannot do, and it is worth knowing before you choose it.",[11,481,482,483,486,487,334,490,493],{},"Mathematical expressions are kept as ",[33,484,485],{},"readable source text",", exactly as written in the notebook: ",[15,488,489],{},"$...$",[15,491,492],{},"$$...$$"," stay as they are instead of being typeset into proper equations. Shipping a TeX engine to the browser is not something this lightweight renderer does.",[11,495,496,497,499],{},"For a notebook with heavy mathematics, ",[15,498,17],{}," with LaTeX is still the right answer. For code, documentation and charts, source-text formulas are usually acceptable — and if they are not, you will know from the preview before you download.",[61,501,503],{"id":502},"does-the-converter-run-your-notebooks-code","Does the converter run your notebook's code?",[11,505,506],{},"No. Executing arbitrary Python from an uploaded file would be unsafe, so the tool only draws the markdown, code and outputs that are already saved in the notebook.",[11,508,509],{},"The practical consequence: if you need fresh results, run the notebook in Jupyter or Colab first, save it, and then convert. The conversion itself never evaluates anything.",[61,511,513],{"id":512},"is-my-notebook-uploaded","Is my notebook uploaded?",[11,515,516],{},"No. Parsing, image embedding and PDF writing all run in a Web Worker in your browser. The file does not leave the device, and no notebook content is recorded.",[11,518,519],{},"This matters more than it might sound for notebooks: they frequently contain connection strings, API responses, internal URLs and sample data that was never meant to be shared with a third-party service.",[61,521,523],{"id":522},"frequently-asked-questions","Frequently Asked Questions",[525,526,528],"h3",{"id":527},"what-is-an-ipynb-file","What is an IPYNB file?",[11,530,531],{},"An IPYNB file is a Jupyter Notebook document — a JSON file holding markdown cells, code cells and the outputs that were saved when the notebook last ran. Because the outputs are stored inside it, the file can be rendered without running anything.",[525,533,535],{"id":534},"do-i-need-python-nbconvert-or-latex-installed","Do I need Python, nbconvert or LaTeX installed?",[11,537,538,539,541,542,544],{},"No. The notebook JSON is parsed and laid out in your browser, so there is no Python environment, no ",[15,540,17],{}," command and no TeX distribution to install. You only need the ",[15,543,21],{}," file.",[525,546,548],{"id":547},"can-i-export-a-notebook-without-the-code-cells","Can I export a notebook without the code cells?",[11,550,551,552,554],{},"Yes. Turn off ",[33,553,235],{}," and you get the markdown narrative, charts and saved results only. The original notebook file is never modified — the change applies to the PDF.",[525,556,558],{"id":557},"will-my-charts-and-plots-be-included","Will my charts and plots be included?",[11,560,561,562,564],{},"Yes, if they were saved as PNG or JPEG images in the notebook, which is what matplotlib and most plotting libraries produce by default. Turn off ",[33,563,261],{}," if you want a text-only, much smaller file.",[525,566,568],{"id":567},"why-are-some-outputs-missing-from-my-pdf","Why are some outputs missing from my PDF?",[11,570,571],{},"Outputs that cannot be drawn are skipped and listed in a report: SVG graphics the browser could not rasterize, very large JSON blobs, and output types with no text or image representation. Interactive JavaScript and iframes are never reproduced. Outputs that were never saved in the notebook are simply not there to draw.",[525,573,575],{"id":574},"can-i-convert-a-google-colab-notebook-to-pdf","Can I convert a Google Colab notebook to PDF?",[11,577,578,579,581],{},"Yes. Download the notebook from Colab as ",[15,580,21],{}," and upload it. Wide dataframes and large charts usually look better in landscape orientation with smaller margins.",[525,583,585],{"id":584},"can-i-merge-several-notebooks-into-one-pdf","Can I merge several notebooks into one PDF?",[11,587,588,589,591],{},"Yes. Turn on ",[33,590,441],{}," and all uploaded notebooks are concatenated in file order into a single document. With merge off, every notebook becomes its own PDF and you can still take them together as a ZIP.",[525,593,595],{"id":594},"can-i-make-the-pdf-cheaper-to-print","Can I make the PDF cheaper to print?",[11,597,598,599,601],{},"Yes. Choose the ",[33,600,351],{}," theme: it drops the shaded backgrounds behind code and output blocks and marks them with a thin left rule instead, so the structure stays readable without large grey areas.",[525,603,605],{"id":604},"are-latex-formulas-rendered-as-equations","Are LaTeX formulas rendered as equations?",[11,607,608,609,334,611,613,614,616],{},"No. They are kept as readable source text, not typeset — ",[15,610,489],{},[15,612,492],{}," appear exactly as written in the notebook. If you need typeset mathematics, use ",[15,615,17],{}," with a TeX installation.",[61,618,620],{"id":619},"related-tools","Related Tools",[27,622,623,629,636],{},[30,624,625,628],{},[55,626,627],{"href":57},"IPYNB to PDF"," — one PDF per notebook, merged into one, or all of them as a ZIP.",[30,630,631,635],{},[55,632,634],{"href":633},"\u002Ftools\u002Fconvert\u002Fmarkdown-to-pdf","Markdown to PDF"," — turn a plain Markdown document into a clean PDF.",[30,637,638,642],{},[55,639,641],{"href":640},"\u002Ftools\u002Fconvert\u002Fhtml-to-pdf","HTML to PDF"," — convert an HTML page or saved web document into a PDF.",{"title":644,"searchDepth":645,"depth":645,"links":646},"",2,[647,648,649,650,651,652,653,654,655,656,657,658,659,671],{"id":63,"depth":645,"text":64},{"id":95,"depth":645,"text":96},{"id":141,"depth":645,"text":142},{"id":201,"depth":645,"text":202},{"id":309,"depth":645,"text":310},{"id":361,"depth":645,"text":362},{"id":399,"depth":645,"text":400},{"id":429,"depth":645,"text":430},{"id":445,"depth":645,"text":446},{"id":475,"depth":645,"text":476},{"id":502,"depth":645,"text":503},{"id":512,"depth":645,"text":513},{"id":522,"depth":645,"text":523,"children":660},[661,663,664,665,666,667,668,669,670],{"id":527,"depth":662,"text":528},3,{"id":534,"depth":662,"text":535},{"id":547,"depth":662,"text":548},{"id":557,"depth":662,"text":558},{"id":567,"depth":662,"text":568},{"id":574,"depth":662,"text":575},{"id":584,"depth":662,"text":585},{"id":594,"depth":662,"text":595},{"id":604,"depth":662,"text":605},{"id":619,"depth":645,"text":620},"tutorials","2026-10-15T00:00:00.000Z","Turn a .ipynb notebook into a PDF without installing Python, nbconvert or a TeX distribution. Markdown, code cells, saved outputs and charts are laid out in your browser.","md","How to Convert a Jupyter Notebook to PDF","\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex\u002Fjupyter-notebook-to-pdf-without-latex-cover.svg",[679],"en",{},true,"\u002Fen\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex",{"slug":684,"text":685,"btn":686},"ipynb-to-pdf","Have a .ipynb file? Convert it to a PDF in your browser — no Python, no LaTeX, no upload.","Open IPYNB to PDF",{"title":5,"description":674},"en\u002Fblog\u002Fjupyter-notebook-to-pdf-without-latex",[627,690,17,691,692],"Jupyter Notebook","Google Colab","PDF export","9ATDyl0U8xEUCe87HhWc6L9T6gOHRXP6HjBB6epvVhU",[695,698],{"path":696,"title":697},"\u002Fen\u002Fblog\u002Fbank-statement-pdf-to-excel","How to Convert a Bank Statement PDF to Excel",{"path":699,"title":700},"\u002Fen\u002Fblog\u002Fcompress-pdf-to-100kb-200kb-500kb-1mb","How to Compress a PDF to 100 KB, 200 KB, 500 KB or 1 MB",1793952070896]