5

I want to print my jupyter notebook and share the hardcopy with non-programmer coworkers.

What I have done so far:

My question: How to put a page break to specify the contents on each pdf page?

Once I convert the slides(html) to pdf, the text and graph is not at the expected location in pdf. I want the graph and the text explaining the graph to be in the same page. Do I need to put some page breaks in markdown cell of my Jupyter notebook? Or how to specify the content on each page of pdf, instead of letting the browser decide

Also, I'm trying to convert Jupyter notebok directly to pdf, but encounters issues: Convert jupyter notebook to pdf: Error encounters when install pandoc

Community
  • 1
  • 1
Lisa
  • 3,066
  • 7
  • 29
  • 60

2 Answers2

1

I wrote an Ebook in Jupyter Notebooks. I put each chapter in a separate Notebook. Then I converted a Notebook to HTML with nbconvert and then use wkhtmltopdf to convert it to PDF. The final step was to merge those PDFs with cpdf. This was the only way I was able to get page breaks in PDF.

jupyter nbconvert --to html Chapter1.ipynb
jupyter nbconvert --to html Chapter2.ipynb

wkhtmltopdf --enable-internal-links -L 10mm -R 9.5mm -T 10mm -B 9.5mm Chapter1.html Chapter1.pdf

wkhtmltopdf --enable-internal-links -L 10mm -R 9.5mm -T 10mm -B 9.5mm Chapter2.html Chapter2.pdf

./cpdf Chapter1.pdf Chapter2.pdf -o Ebook.pdf 

I wrote a script that automates this process and coverts Ebook to EPUB, AZW3 and PDF. You can read more about it here: https://towardsdatascience.com/transform-jupyter-notebook-to-an-ebook-ef3a9d32ac4f.

Roman Orac
  • 1,006
  • 12
  • 17
0

I found several places which mentioned including HTML code for the page break in a markdown cell. I got this to work, but only by:

  1. Include HTML for a page break in a markdown cell. The code used was <p style="page-break-after:always;"></p>
  2. Export it to HTML with nbconvert. For this, the command line would be jupyter nbconvert --to html YourNotebook.ipynb
  3. I could then open that static HTML file with Chrome.
  4. Finally, choose print from within Chrome and choose save as PDF.

I tried other methods such as print when viewing the .ipynb file or using nbconvert to go straight to PDF, but none of that worked. Exporting to HTML and then opening the html and saving as PDF did work.

xlm
  • 4,594
  • 13
  • 42
  • 47