IPythonノートブックをPDFおよびHTMLに変換する方法は?


92

ipython-notebooksを変換して印刷するか、単にhtml形式で送信したいと思います。それを行うためのツール、nbconvertがすでに存在することに気づきました。ダウンロードしましたが、nbconvertが非推奨であると言っているため、nbconvert2.pyを使用してノートブックを変換する方法がわかりません。nbconvert2.pyは、ノートブックを変換するためのプロファイルが必要だと言っていますが、それは何ですか?このツールに関するドキュメントはありますか?


回答:


100

LaTeXがインストールされている場合は、Jupyterノートブックから[ファイル] -> [名前を付けてダウンロード] -> [ LaTeX経由のPDF(.pdf)]を使用してPDFとして直接ダウンロードできます。それ以外の場合は、次の2つの手順に従ってください。

  1. HTML出力の場合、IPythonの代わりにJupyterを使用し、[ファイル] -> [名前を付けてダウンロード] -> [ HTML(.html)]を選択するか、次のコマンドを実行する必要があります。

    jupyter nbconvert --to html notebook.ipynb  
    

    これにより、Jupyterドキュメントファイルnotebook.ipynbがhtml出力形式に変換されます。

    Google Colaboratoryは、セットアップを必要とせず、完全にクラウドで実行されるGoogleの無料のJupyterノートブック環境です。Google Colabを使用している場合、コマンドは同じですが、GoogleColabでは.ipynbまたは.py形式のみをダウンロードできます。

  2. htmlファイルnotebook.htmlをnotebook.pdfというPDFファイルに変換します。Windows、Mac、またはLinuxでは、wkhtmltopdfをインストールします。wkhtmltopdfは、WebKitを使用してhtmlをpdfに変換するコマンドラインユーティリティです。リンクされたWebページからwkhtmltopdfをダウンロードできます。または、多くのLinuxディストリビューションでは、リポジトリにあります。

    wkhtmltopdf notebook.html notebook.pdf   
    

元の(現在はほとんど廃止されている)リビジョン:IPythonノートブックファイルをhtmlに変換します。

ipython nbconvert --to html notebook.ipynb


1
すべてが1ページ-__-に崩壊した
htafoya

2
HTML出力の場合jupyteripythonたとえばjupyter nbconvert --to html notebook.ipynb
AlexG 2018

これを機能させるには、jupyter_contrib_nbextensionsをインストールする必要があります。
CharlesG

上記の回答によると、wkhtmltopdfが必要です。これは私のために働いたのUbuntu 14.04でそれをインストールするにはgist.github.com/brunogaspar/bd89079245923c04be6b0f92af431c10
プラディープ・シン

4
WebサイトをPDFに印刷することもできます。
AndiCover

18

ドキュメントから:

ノートブックの静的なHTMLまたはPDFビューを他の人に提供する場合は、[印刷]ボタンを使用します。これにより、ドキュメントの静的ビューが開き、オペレーティングシステムの機能を使用してPDFに印刷したり、Webブラウザの[保存]オプションを使用してファイルに保存したりできます(通常、これによりhtmlファイルと次のディレクトリの両方が作成されます)その隣にあるnotebook_name_filesには、必要なすべてのスタイル情報が含まれているため、これを共有する場合は、メインのhtmlファイルと一緒にディレクトリを送信する必要があります。


1
ありがとうございました!HTMLバージョンは非常に優れており、入手も非常に簡単です。ただし、PDFは良くありません。グラフが2ページの間にあり、長いコード行もカットされている場合、グラフは2つにカットされます。
nunzio13n 2013

@ nunzio13n-少なくともあなたはhtmlを持っています...私は使っnbconvrtたことがないので、それについてあなたを本当に助けることはできません。うまくいけば、誰かがやって来るでしょう...
ルート

4
デッドリンク。また、ノートブックに印刷ボタンがありません。
Pat

CTRL+を使用してブラウザで印刷を使用すると機能しますP
LeviBaguley20年

a)JupyterからHTMLとしてエクスポートすると、画像が保存されないようです。b)ファイル->フォームとして保存Firefoxでは、表示されているものだけが表示される完全に非対話型のページが表示されます。また、あなたの投稿のリンクは無効になっています。
jrh50

13

nbconvertはまだ完全にnbconvert2に置き換えられていません。必要に応じて引き続き使用できます。そうでない場合は、実行可能ファイルが削除されます。nbconvert1のバグ修正を行わなくなったことを警告するだけです。

以下が機能するはずです:

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

IPythonの最新バージョンを使用している場合は、印刷ビューを使用せず、通常の印刷ダイアログを使用してください。Chromeでカットされたグラフビーイングは既知の問題であり(Chromeは一部の印刷CSSを尊重しません)、Firefoxではるかにうまく機能しますが、すべてのバージョンがまだ機能しているわけではありません。

nbconvert2に関しては、それでも非常に開発が進んでおり、ドキュメントを作成する必要があります。

Nbviewerはnbconvert2を使用するため、HTMLでかなり適切です。

現在利用可能なプロファイルのリスト:

$ 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

既存のプロファイルを提供します。(独自の、将来のドキュメントを参照./nbconvert2.py --help-allして、プロファイルで使用できるオプションを提供する必要があります。)

その後

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

そして、cwdで図を抽出する限り、(tex)ファイルを書き込む必要があります。はい、私はこれが明白ではないことを知っています、そしてそれはおそらく変わるでしょう、それ故にドキュメントはありません...

その理由は、nbconvert2は主にPythonライブラリであり、疑似コードで次のことができるためです。

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

APIが安定すると、エントリポイントは後で来ます。

私はちょうどことを指摘ます@jdfreder(githubのプロファイルは)テックス/ PDF /スフィンクスの輸出に取り組んでこれを書いている時点でipynbファイルからPDFを生成するための専門家です。


ありがとう、あなたは私の疑問をもっと明らかにしてくれました。しかし、それでもnbconvert2.pyは機能しません。これは、構成ファイルも必要であるためです[NbconvertApp] Config file for profile './profile/latex_base.nbcv' not found, giving up。nbconvertは直接pdfファイルを提供しませんが、ラテックスファイルを提供し、*。texファイルをpdflatexで処理する必要があります。良い解決策。
nunzio13n 2013

githubで問題を開くことができますか?これを整理します。
マット

おそらくそれはnbconvertの問題ではありませんが、それは私の知識不足によるものです。おそらく、ドキュメントが出てきたら、すべてが明確になるでしょう。ノートブックとnbconvertを使用したipythonは非常に優れた作業であり、まもなくドキュメントになると確信しています。
nunzio13n 2013

これは、ipythonの番号付けを失う/与えないようです(ipythonディレクティブを使用して変換されることを望んでいました)。
Andy Hayden

これを実現するためのAPIバージョンはありますか?私はそこにあることを確認IPython.nbconvert.exporters.latexし、コマンドライン・ツールなしでここからPDF出力を取得する方法があるのだろうか。また、それを機能させるための依存関係は何ですか?(pandoc、tetex、その他?)そして私はそれがクロスプラットフォームではないと思います(Windowsでは動作しません)。TIA!
ianSR 2014年

12

また、--executeフラグを渡して出力を取得します

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

ベストプラクティスは、バージョン管理のためにノートブックから出力を除外することです。参照:バージョン管理下でのIPythonノートブックの使用

ただし、渡さない--executeと、出力はHTMLに表示されません。ターミナルから.ipynb JupyterNotebookを実行する方法も参照してください

ヘッダーのないHTMLフラグメントの場合:ブログ投稿用にIPythonノートブックをHTMLにエクスポートする方法は?

Jupyter4.4.0でテスト済み。



9

システムにwkhtmltopdfをインストールできない場合、この質問への回答ですでに述べた多くの方法以外のもう1つの方法は、ファイルをjupyterノートブックからhtmlファイルとしてダウンロードし、それをHTMLにPDFにアップロードしてダウンロードすることです。そこから変換されたpdfファイル。

ここでは、IPythonノートブック(.ipynb)がPDF(.pdf)形式とHTML(.html)形式の両方に変換されています。


4

ドキュメントに数学や科学の公式が含まれている場合は、この回答だけが役に立ちます。あなたがそれらを持っていなくても、それはうまくいきます。

GUIの方法

  • jupyterノートブックを開きます jupyterノートブックを開きます
  • [ファイル]> [名前を付けてダウンロード]> [LaTeX経由でHTMLまたはPDF]に移動します [ファイル]> [名前を付けてダウンロード]> [LaTeX経由でHTMLまたはPDF]に移動します

  • 次に、ダウンロードフォルダでファイルを確認します。PS:PDFのコンパイル中にLaTeXでエラーが発生した場合、失敗します。これが発生した場合は、HTMLファイルをダウンロードしてから、http://webpagetopdf.com/ または他の同様のサービスを使用してHTMLをPDFに変換してください

コマンドライン方式

  • ターミナルを開く
  • jupyterノートブックを含むフォルダーに移動します
  • 「jupyternbconvert--to pdf your_jupyter_notebook.ipynb」と入力します。PS:失敗した場合は、Yogeshの回答を試してください。

4

sagemathクラウドバージョンを使用している場合は、左隅に移動し、
[ファイル]→[名前付けてダウンロード]→[LaTeX経由のPDF(.pdf)]を選択します
。必要に応じてスクリーンショットを確認してください。
スクリーンショットipynbをpdfに変換

する何らかの理由で機能しない場合は、別の方法を試すことができます。
[ファイル
]→[印刷プレビュー]を選択し、プレビューで 右クリック→[印刷]を選択して、[PDFとして保存]を選択します。


3

まだPDFを動作させることができません。ドキュメントは、ラテックスで動作させることができるはずであることを示唆しているので、おそらく私のラテックスは動作していません。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は「スライド」を使用するとうまく機能し、美しいです。 $ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html

//更新2014-11-07Fri .: IPython v3の構文は異なり、より単純です。 $ ipython nbconvert --to PDF myfile.ipynb いずれの場合も、ライブラリ「pdflatex」が欠落しているようです。私はそれを調査しています。


試してみてください:$ ipython nbconvert your_file.ipynb --tolatex --post PDF
モルドバ2014年

ty @moldoveanは、これをもう一度確認するために私にpingを送信してくれました。さらにグーグルすると、問題が明らかになりました。引数の順序は関係ありませんでしたが、「そのようなファイルやディレクトリはありません」というメッセージが表示されました。
AnneTheAgile 2014年

それは興味深い問題です。多分...多分ipythonを再インストールすることは助けになるでしょう..私は本当に知りません:(
モルドバ2014年

@moldovean、特定のライブラリが必要ですが、ipynbによってインストールされていないことがわかりました。この場合、パスに少なくともpdflatexが必要です。エラーチェックを改善するには、私のPRを参照してください。github.com
ipython / ipython /

3

最初にノートブックをHTMLに変換し、次にPDF形式に変換することでそれを行うことができます。

私が実装した次の手順:OS:Ubuntu、Anaconda-Jupyterノートブック、Python 3

1ノートブックをHTML形式で保存します。

  1. HTML形式で保存するjupyterノートブックを起動します。まず、ノートブックを適切に保存して、HTMLファイルに最新の保存バージョンのコード/ノートブックが含まれるようにします。

  2. ノートブック自体から次のコマンドを実行します。

    !jupyter nbconvert --to html your_notebook_name.ipynb

実行後、ノートブックのHTMLバージョンが作成され、現在の作業ディレクトリに保存されます。1つのhtmlファイルがyour_notebook_name.html名前で現在のディレクトリに追加されるのがわかります

your_notebook_name.ipynb-> your_notebook_name.html)。

2 HTMLをPDFとして保存します:

  1. 次に、そのyour_notebook_name.htmlファイルを開きます(クリックします)。ブラウザの新しいタブで開きます。
  2. 次に、印刷オプションに移動します。ここから、このファイルをpdfファイル形式で保存できます。

印刷オプションから、PDF形式で保存するノートブックの一部を選択する柔軟性もあることに注意してください。


3

その他の推奨されるアプローチ:

  1. [印刷]を使用して、[PDFとして保存]を選択します。HTMLファイルから取得すると、境界線のエッジが失われ、構文が強調表示され、プロットがトリミングされます。

  2. 他のいくつかのライブラリは、廃止されたバージョンの使用に関しては壊れていることが示されています。

解決策:より良い、手間のかからないオプションは、*。ipynbの* .htmlバージョンを* .pdfに変換するオンラインコンバーターを使用することです。

手順:

  1. まず、Jupyterノートブックインターフェイスから、以下を使用して* .ipynbを* .htmlに変換します。

ファイル>ダウンロード> HTML(.html)

  1. 新しく作成した* .htmlファイルをここにアップロードし、[HTMLからPDF]オプションを選択します。

  2. これで、PDFファイルをダウンロードする準備が整いました。

  3. これで、.ipynb、.html、および.pdfファイルが作成されました。


2

ノートブックをhtmlとして保存する方法を探していました。新しいJupyterインストールでhtmlとしてダウンロードしようとすると、常に500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'エラーが発生するためです。奇妙なことに、htmlとしてダウンロードするのは次のように簡単であることがわかりました。

  1. ノートブックを左クリック
  2. ドロップダウンメニューの[名前を付けて保存...]をクリックします
  3. それに応じて保存

印刷プレビューなし、印刷なし、nbconvertなし。Jupyterを使用しますVersion: 1.0.0。試してみることをお勧めします(明らかに、すべての設定が同じというわけではありません)。


2

Web上にあるノートブックをPDFに変換する最も簡単な方法は、最初にWebサービスnbviewerで表示することです。その後、PDFファイルに印刷できます。ノートブックがローカルドライブにある場合は、最初にgithubリポジトリにアップロードし、そのURLをnbviewerに使用します。


2

上記のいくつかの回答をインラインPythonで組み合わせて、〜/ .bashrcまたは〜/ .zshrcに追加して、多くのノートブックをコンパイルして1つのPDFファイルに変換できます

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 * 
}

2

partizanosの答えのプレーンなPythonバージョン。

  • ターミナル(Linux、MacOS)を開くか、WindowsでPythonファイルを実行できる場所に移動します
  • .pyファイルに次のコードを入力します(tejas.pyなど)
import os

[os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
  • jupyterノートブックを含むフォルダーに移動します
  • tejas.pyが現在のフォルダーにあることを確認します。必要に応じて、現在のフォルダにコピーします。
  • 「pythontejas.py」と入力します
  • 仕事は終わりました

--template report追加オプションとして使用すると、ノートブックのさまざまなマークダウン見出しを使用して、結果のpdfにToCもコンパイルされます。
ステファン

2

Notebook-as-pdfInstall

python -m pip install Notebook-as-pdf pyppeteer-install

これを使って

nbconvertで使用することもできます。

jupyter-nbconvert --to PDFviaHTML filename.ipynb

これにより、filename.pdfというファイルが作成されます。

またはpipinstallnotebook-as-pdf

ノートブックjupyter-nbconvert-toPDFviaHTMLからPDFを作成する


ありがとう、これは私にとってうまくいきました。私は最初にPython3.6.8環境でこれを試しましたが、いくつかの問題が発生しました。次に、CondaをベースにしたPython 3.7.8環境にアップグレードすると、チャームのように機能しました。
mastDrinkNimbuPani

これは、asyncioがパッケージの依存関係であり、コードのどこかに3.7のみのメソッドであるasyncio.runがあるためです。
mastDrinkNimbuPani

1

あなたは使用することができ、このシンプルなオンラインサービスを。HTMLとPDFの両方をサポートします。


0

私が考える最も簡単な方法は、「Ctrl + P」>「pdf」として保存です。それでおしまい。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.