Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

export notebook to pdf without code [duplicate]

I have a large notebook with a lot of figures and text. I want to convert it to a html file. However, I don't want to export the code. I am using the following command

ipython nbconvert --to html notebook.ipynb 

But this option also exports the code. Is there a way to convert the notebook to html without the code?

like image 584
aloha Avatar asked Jan 15 '16 19:01

aloha


People also ask

How do you save a Jupyter Notebook without the code?

Run Jupyter notebook and download the notebook in the browser: File->Download as->HTML and you will get a html page with code and output. The code removes all input div DOM. Then right mouse button and chose "Save Page As" and Save the "Complete page" (not single page).

How do I save a Jupyter Notebook as PDF code?

The Jupyter Notebook has an option to export the notebook to many formats. It can be accessed by clicking File -> Download as -> PDF via LaTeX (or PDF via HTML - not visible in the screenshot).

How do I copy code from one Jupyter Notebook to another?

Copying and pasting cells BETWEEN notebooks: Notebook 1: — Select multiple cells by holding down Shift and hit Ctrl+c to copy. Notebook 2: — Hit Esc to enter Command mode Ctrl + v to paste.


2 Answers

I found this article interesting it explains how to remove the input columns :

you have to create a template file named "hidecode.tplx" in same directory as the notebook you want to convert and add those line in it :

    ((*- extends 'article.tplx' -*))  ((* block input_group *))     ((*- if cell.metadata.get('nbconvert', {}).get('show_code', False) -*))         ((( super() )))     ((*- endif -*)) ((* endblock input_group *)) 

And after run this command it will use pdfLatex to convert the notebook in pdf via latex:

jupyter nbconvert --to pdf --template hidecode Example.ipynb 

or if you want to edit you can convert it to a .tex document and use pdfLatex to put it in pdf :

jupyter nbconvert --to latex --template hidecode Example.ipynb 

EDIT Sept 2018:

ipython nbconvert is deprecated. It will be replaced by jupyter nbconvert: So we replace the command ipython with jupyter

EDIT Feb 2021: (This is my best answer here, so let me take care of it)

Following @Mrule comment adding --no-input flag will make it work without the template...

jupyter nbconvert --to latex --no-input Example.ipynb  

PS: If you are getting issue saying :

LaTeX error related to tcolorbox.sty not found

Please refer to this guide to update your tex installation and this question

like image 70
Espoir Murhabazi Avatar answered Sep 20 '22 19:09

Espoir Murhabazi


I was seeking the same question in SO and finally turned out to a very straightforward way:

Assuming using Firefox(57) + Win7

  1. Run Jupyter notebook and download the notebook in the browser: File->Download as->HTML and you will get a html page with code and output.
  2. Open the exported HTML with browser and activate the browser console with key F12
  3. Run following command in the console:

    document.querySelectorAll("div.input").forEach(function(a){a.remove()}) 
  4. The code removes all input div DOM. Then right mouse button and chose "Save Page As" and Save the "Complete page" (not single page).

  5. You will get a page with an associated folder in windows. Use a trick by zip the html page and then extract to unbind the associated. The folder is useless.

  6. Now it is a single html page without code. You can re-distribute it or print it as PDF.

If you are not using Firefox or Windows, please adjust the above 3-6 steps.

like image 35
Boying Avatar answered Sep 21 '22 19:09

Boying