I want to print my jupyter notebook and share the hardcopy with non-programmer coworkers.
What I have done so far:
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.
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:
<p style="page-break-after:always;"></p>
jupyter nbconvert --to html YourNotebook.ipynb
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.