13

I have a Jupyter notebook that contains markdown, code, and outputs (graphs). I would like to generate PDF from this notebook.

I tried to hide code using HTML code which I get from here then I tried to download it as pdf but again code shows up. But when I download it as HTML it don't show any code but again when I tried to convert HTML to pdf it again shows code.

Ethan
  • 1,625
  • 8
  • 23
  • 39
GIRISH kuniyal
  • 253
  • 1
  • 2
  • 8

5 Answers5

11

Try this:

jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True  my_notebook.ipynb

This also works for html output. You will find the documentation for this and other options here.

FYI, for complex notebooks, this may generate errors depending on your version of nbconvert, LaTeX and other components. In that case try to convert to html then print to pdf using a browser.

Zephyr
  • 997
  • 4
  • 10
  • 20
Donald S
  • 1,889
  • 3
  • 7
  • 28
  • It is good solution. but this approch break markdown like heading shows up as # heading etc. each markdown line contains some unwanted section number like 0.0.2. – GIRISH kuniyal Jul 08 '20 at 18:04
2

Make sure you are working with Qt Console (anaconda):

Install Jupiter extensions:

!pip install jupyter_contrib_nbextensions

!jupyter contrib nbextension install --user 

Enable nbextension:

!jupyter nbextension enable codefolding/main

Install pyppeteer:

!python -m pip install -U notebook-as-pdf

!pyppeteer-install

MAKE SURE YOUR WORKING DIRECTORY IS WHERE YOUR Untitled.ipynb FILE IS SAVED Save file to HTML format without codes:

!jupyter nbconvert Untitled.ipynb --no-input --no-prompt --to html

EXPORT TO PDF FORMAT:

!jupyter-nbconvert Untitled.ipynb --no-input --no-prompt --to pdfviahtml

PS. Exporting HTML and PDF format are mutually exclusive commands, you can use either.

Pluviophile
  • 3,520
  • 11
  • 29
  • 49
0

Refer below link. It is the easiest and legitimate way of downloading jupyter notebook as pdf. No third party app or converter needed.

https://youtu.be/Q1J7MpI5PQk

  • 1
    please summarize the contents from the link to make the answer self-contained. link-only answers are discouraged. – oW_ Jun 16 '22 at 16:06
  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jun 16 '22 at 17:00
0

If you manually create the PDF, there is a simpler solution: add the following code block & execute it

from IPython.core.display import HTML
HTML('<style>.input, .jp-InputArea {display: none !important}</style>')

Code will disappear both in the "normal" UI and in print preview / export to HTML. Open print preview, generate the PDF - it looks great now, clear the output of this one cell to bring the code back, done

0

Make your program generate markdown output (you can save images and add references to them) and convert it using pandoc. Or don't convert, upload directly to Gitlab or Github and view.

Valentas
  • 1,064
  • 1
  • 8
  • 20