wake-up-neo.com

Wie konvertiere ich ipython Notebooks in PDF und HTML?

Ich möchte meine ipython-notebooks konvertieren, um sie zu drucken, oder sie einfach im HTML-Format an andere senden. Ich habe bemerkt, dass es bereits ein Werkzeug dafür gibt, nbconvert . Ich habe es heruntergeladen, aber ich habe keine Ahnung, wie man das Notebook konvertieren soll, mit nbconvert2.py, da nbconvert sagt, dass es veraltet ist. nbconvert2.py sagt, ich brauche ein Profil, um das Notebook zu konvertieren. Was ist das? Besteht eine Dokumentation zu diesem Tool?

34
nunzio13n
  1. Konvertieren Sie die IPython-Notizbuchdatei in HTML.

    ipython nbconvert --to html notebook.ipynb  
    

    Dadurch wird die IPython-Dokumentdatei notebook.ipynb in das HTML-Ausgabeformat konvertiert.

    Update: Für die HTML-Ausgabe sollten Sie jetzt jupyter anstelle von ipython verwenden: 

    jupyter nbconvert --to html notebook.ipynb
    
  2. Konvertieren Sie die HTML-Datei notebook.html in eine PDF-Datei namens notebook.pdf. Installieren Sie unter Windows, Mac oder Linux wkhtmltopdf . wkhtmltopdf ist ein Befehlszeilenprogramm zum Konvertieren von HTML in PDF mit WebKit. Sie können wkhtmltopdf von der verlinkten Webseite herunterladen oder in vielen Linux-Distributionen in deren Repositories finden. 

    wkhtmltopdf notebook.html notebook.pdf   
    
33
karel

nbconvert ist noch nicht vollständig durch nbconvert2 ersetzt, Sie können es jedoch weiterhin verwenden, wenn Sie möchten, andernfalls hätten wir die ausführbare Datei entfernt. Es ist nur eine Warnung, dass wir nbconvert1 nicht mehr korrigieren.

Folgendes sollte funktionieren:

./nbconvert.py --format=pdf yourfile.ipynb 

Wenn Sie über eine ausreichend lange Version von IPython verfügen, verwenden Sie die Druckansicht nicht. Verwenden Sie einfach den normalen Druckdialog. Ein Graph, der in Chrom geschnitten wird, ist ein bekanntes Problem (Chrome berücksichtigt einige Druck-CSS nicht) und funktioniert mit Firefox viel besser, nicht in allen Versionen.

Wie für nbconvert2, es sind immer noch sehr dev und docs müssen geschrieben werden.

Nbviewer Verwenden Sie nbconvert2, so dass es mit HTML ziemlich anständig ist.

Liste der aktuell verfügbaren Profile:

$ ls -l1 profile|cut -d. -f1

base_html
blogger_html
full_html
latex_base
latex_sphinx_base
latex_sphinx_howto
latex_sphinx_manual
markdown
python
reveal
rst

Gib dir die vorhandenen Profile. (Sie können Ihr eigenes, zukünftiges Dokument erstellen, ./nbconvert2.py --help-all sollte Ihnen eine Option geben, die Sie in Ihrem Profil verwenden können.)

dann 

$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>

Und es sollte Ihre (tex) -Dateien schreiben, solange extrahierte Zahlen in cwd sind. Ja, ich weiß, das ist nicht offensichtlich, und es wird sich wahrscheinlich ändern, also kein Dokument ...

Der Grund dafür ist, dass nbconvert2 hauptsächlich ein Python library sein wird, in dem Sie im Pseudocode Folgendes tun können:

 MyConverter = NBConverter(config=config)
 ipynb = read(ipynb_file)
 converted_files = MyConverter.convert(ipynb)
 for file in converted_files :
     write(file)

Einstiegspunkt wird später kommen, sobald die API stabilisiert ist.

Ich möchte nur darauf hinweisen, dass @jdfreder (github profile) am Export von tex/pdf/sphinx arbeitet und der Experte ist, um PDF zum Zeitpunkt der Erstellung dieses Dokuments aus einer ipynb-Datei zu generieren.

11
Matt

Aus den docs :

Wenn Sie anderen eine statische HTML- oder PDF -Ansicht Ihres Notizbuchs zur Verfügung stellen möchten, verwenden Sie die Schaltfläche Drucken. Dadurch wird eine statische Ansicht des Dokuments geöffnet, die Sie mit den Betriebssystemfunktionen Ihres Betriebssystems als PDF drucken oder mit der Option "Speichern" Ihres Webbrowsers in einer Datei speichern können daneben befindet sich ein Verzeichnis namens notebook_name_files, das alle erforderlichen Stilinformationen enthält. Wenn Sie dies also freigeben möchten, müssen Sie das Verzeichnis zusammen mit der Haupt-HTML-Datei senden.

7
root
  1. Сохранить как HTML;
  2. Ctrl+P;
  3. Сохранить как PDF.
2
user9522821

Übergeben Sie auch das Flag --execute, um die Ausgabe zu erhalten.

jupyter nbconvert --execute --to html notebook.ipynb
jupyter nbconvert --execute --to pdf notebook.ipynb

Es empfiehlt sich, die Ausgabe des Notebooks zur Versionskontrolle nicht zu verwenden, siehe: Verwenden von IPython-Notebooks unter Versionskontrolle

Wenn Sie jedoch --execute nicht übergeben, wird die Ausgabe nicht im HTML-Code vorhanden sein. Siehe auch: Wie kann ich ein .ipynb Jupyter Notebook vom Terminal aus ausführen?

Für ein HTML-Fragment ohne Header: Wie exportiere ich ein IPython-Notizbuch für einen Blogbeitrag in HTML?

Getestet in Jupyter 4.4.0.

Ich finde, dass die einfachste Methode zum Konvertieren eines Notebooks, das im Internet in PDF vorliegt, darin besteht, es zuerst im Webservice nbviewer anzuzeigen. Sie können es dann in eine PDF-Datei drucken. Wenn sich das Notebook auf Ihrem lokalen Laufwerk befindet, laden Sie es zunächst in ein github-Repository hoch und verwenden Sie dessen URL für nbviewer.

1
hlkw

Ich kann PDF noch nicht zum Laufen bringen. Die Dokumente besagen, dass ich in der Lage sein sollte, mit Latex zu arbeiten. Vielleicht funktioniert mein Latex nicht. http://ipython.org/ipython-doc/rel-1.0.0/interactive/nbconvert.html $ ipython --version 1.1.0 $ ipython nbconvert --to latex --post PDF myfile.ipynb [NbConvertApp] ... raise child_exception OSError: [Errno 2] No such file or directory $ ipython nbconvert --to pdf myfile.ipynb [NbConvertApp] CRITICAL | Bad config encountered during initialization: [NbConvertApp] CRITICAL | The 'export_format' trait of a NbConvertApp instance must be any of ['custom', 'html', 'latex', 'markdown', 'python', 'rst', 'slides'] or None, but a value of u'pdf' was specified.

HTML funktioniert jedoch gut mit "Folien" und es ist schön! $ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html

// Update 2014-11-07Fri .: Die IPython v3-Syntax unterscheidet sich, es ist einfacher. $ ipython nbconvert --to PDF myfile.ipynb .__In allen Fällen scheint mir die Bibliothek 'pdflatex' zu fehlen. Ich untersuche das.

1
AnneTheAgile

Der beste und einfachste Weg

Drücken Sie einfach

Befehl + P in Mac

Strg + P in Windows

Das Menü Drucken wird geöffnet. Wählen Sie dann Als PDF speichern und drücken Sie Speichern.

0
Lakshay

Sie können dies tun, indem Sie das Notizbuch zuerst in HTML und dann in das Format PDF konvertieren:

Folgende Schritte habe ich implementiert auf: OS: Ubuntu, Anaconda-Jupyter-Notebook, Python 3

1 Speichern Sie das Notebook im HTML-Format:

  1. Starten Sie das Jupyter-Notizbuch, das Sie im HTML-Format speichern möchten. Speichern Sie zuerst das Notizbuch ordnungsgemäß, damit in der HTML-Datei eine letzte gespeicherte Version Ihres Codes/Notizbuchs angezeigt wird. 
  2. Führen Sie den folgenden Befehl vom Notebook aus aus:

    !jupyter nbconvert --to html your_notebook_name.ipynb

Nach der Ausführung wird die HTML-Version Ihres Notizbuchs erstellt und im aktuellen Arbeitsverzeichnis gespeichert. Sie sehen, dass eine HTML-Datei mit your_notebook_name.html name in das aktuelle Verzeichnis eingefügt wird

(your_notebook_name.ipynb -> your_notebook_name.html). 

2 Speichern Sie HTML als PDF:

  1. Öffnen Sie nun diese your_notebook_name.html-Datei (klicken Sie darauf). Es wird in einem neuen Tab Ihres Browsers geöffnet.
  2. Gehen Sie jetzt zur Druckoption. Von hier aus können Sie diese Datei im PDF-Format speichern.

Beachten Sie, dass wir bei der Druckoption auch die Flexibilität haben, einen Teil eines Notizbuchs zum Speichern im PDF-Format auszuwählen.

0
Yogesh

Ich habe nach einer Möglichkeit gesucht, Notizbücher als HTML zu speichern, da ich immer, wenn ich versuche, mit meiner neuen Jupyter-Installation als HTML-Datei herunterzuladen, immer einen 500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'-Fehler bekomme. Seltsamerweise habe ich festgestellt, dass das Herunterladen als HTML so einfach ist wie:

  1. Klicken Sie mit der linken Maustaste in das Notizbuch
  2. Klicken Sie im Dropdown-Menü auf "Speichern unter ..."
  3. Sparen Sie entsprechend

Keine Druckvorschau, kein Druck, kein Nbconvert. Verwendung von Jupyter Version: 1.0.0. Nur ein Vorschlag zum Ausprobieren (offensichtlich sind nicht alle Setups gleich).

0
ralston3

Wenn Sie die sagemath cloud-Version verwenden, können Sie einfach in die linke Ecke gehen. 
wählen Sie Datei -> Herunterladen als -> Pdf über LaTeX (.pdf).
Überprüfen Sie den Screenshot, wenn Sie möchten. 
Screenshot Konvertieren Sie ipynb in pdf

Wenn es aus irgendeinem Grund nicht funktioniert, können Sie es auf andere Weise versuchen.
wählen Sie Datei -> Seitenansicht und dann in der Vorschau
rechtsklick -> Drucken und dann als PDF speichern auswählen.

0
Lefteris Xris

Ich habe einige Antworten oben in Inline python kombiniert, die Sie zu ~/.bashrc oder ~/.zshrc hinzufügen können, um viele Notizbücher zu einer einzigen PDF-Datei zu kompilieren und zu konvertieren

function convert_notebooks(){
  # read anything on this folder that ends on ipynb and run pdf formatting for it  
  python -c 'import os; [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir (".") if f.endswith("ipynb")]'
  # to convert to pdf u must have installed latex and that means u have pdfjam installed
  pdfjam * 
}
0
partizanos

Andere vorgeschlagene Ansätze:

  1. Verwenden Sie "Drucken" und wählen Sie dann "Als PDF speichern". Aus Ihrer HTML-Datei werden loss der Randkanten, Hervorhebung der Syntax, Trimmen von Plots usw. resultieren.

  2. Einige andere Bibliotheken haben gezeigt, dass sie in Bezug auf veraltete Versionen defekt sind. 

Lösung: Eine bessere, problemlose Option ist die Verwendung eines Online-Konverters https://www.sejda.com/html-to-pdf , der die * .html-Version Ihres * konvertiert. ipynb zu * .pdf. 

Schritte:

  1. Zuerst konvertieren Sie von Ihrem Jupyter-Notebook-Interface aus * .ipynb in * .html mit 

Datei> Herunterladen als> HTML (.html)

  1. Laden Sie die neu erstellte * .html-Datei nach https://www.sejda.com/html-to-pdf und wählen Sie dann die Option HTML to PDF.

  2. Ihre pdf-Datei steht jetzt zum Download bereit. 

  3. Sie haben jetzt .ipynb-, .html- und .pdf-Dateien

0
Saurabh Jain