web-dev-qa-db-ja.com

IPython / JupyterでノートブックをPDFとして保存する際の問題

だから、私はjupyterノートブックをPDFとして保存しようとしてきましたが、これを行う方法がわかりません。私が最初に試みることは、ファイルメニューからPDFとしてダウンロードするだけですが、それを行うと:

nbconvert failed: PDF creating failed

私が次に試みることは、このようなコマンドプロンプトからの変換を試みることです

$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb 

しかし、これもエラーメッセージになります

ImportError: No module named 'PDF'

そして私が試してみると

$ ipython nbconvert --to latex MyNotebook.ipynb 

これにより

IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed

pandoc(pip install pandoc)をインストールしようとすると、

ImportError: No module named 'ConfigParser'

そして、他に何をすべきかわからないので、ここで行き詰まります。誰でも間違っているものを修正する方法を知っていますか?

63
Isak Baizley

MacでHomebrewをインストールしている場合は、ターミナルシェルを開き、次のコマンドを入力してpandocをインストールします。

brew install pandoc

遅いインターネット接続や古いシステムでは、インストールとコンパイルに時間がかかる場合があります。

25
Andrea

それを機能させるために、latex、典型的なlatex extra、およびpandocをインストールしました。

Ubuntuの場合:

Sudo apt-get install texlive texlive-latex-extra pandoc

ダウンロードには数百Mbかかります。 texliveに--no-install-recommendsを使用し、dlに減らすためにextraを使用できることをどこかで読みました。

22
Juh_

2015-4-22:IPythonの更新は、--to pdfの代わりに--to latex --post PDFを使用する必要があるようです。関連する Githubの問題 があります。

11
Scott

ノートブックをPDFに変換するには、最初にnbconvertをインストールする必要があります。

pip install nbconvert
# OR
conda install nbconvert

次に、Anacondaを使用していないか、まだ行っていない場合は、 their website の指示に従うか、Linuxでは次のようにpandocをインストールする必要があります。

Sudo apt-get install pandoc

その後、マシンにXeTexをインストールする必要があります。

IPython Notebookが格納されているフォルダーに移動して、次のコマンドを実行できます。

jupyter nbconvert --to pdf MyNotebook.ipynb

詳細については、 このリンク をご覧ください。

5
Tanmay Lata

質問へのコメントにあるように、pandocとlatex(TeXShopなど)が必要になります。 Homebrewでpandocをインストールしましたが、1秒かかりました。 pandocとTeXShopがあれば、ラテックスを生成できましたが、pdfを生成できませんでした(コマンドラインで)。

ipython nbconvert --to latex mynotebook.ipynb

TeXShopでラテックス(.tex)ファイルを調べると、スタイルシートと定義が欠落していることが原因でした。これらすべて(adjustbox.sty、adjcalc.sty、trimclip.sty、collectbox.sty、tc-pgf.def、ucs.sty、uni-global.def、utf8x.def、ucsencs.def)をインストールした後、ようやく作業。

しかし、結果は私の好みには少しファンキーすぎます。 Safariからhtmlを印刷すると構文の色付けが失われるのは残念です。そうでなければ、それはそれほど悪く見えません。 (これはすべてOS X上にあります)。

4
telliott99

OSでAnaconda-Jupyterノートブックを使用しています:Pythonプログラミング用のUbuntu 16.0。

Nbconvert、Pandoc、およびTexをインストールします。

ターミナルを開き、次のコマンドを実装します。

Nbconvertをインストールします。Jupyterエコシステムの一部ですが、再度インストールします

$conda install nbconvert

または

$pip install nbconvert

ただし、anacondaを使用している場合は、pipではなくcondaを使用することをお勧めします

Pandocのインストール:NbconvertはマークダウンをHTML以外の形式に変換するためにPandocを使用するため。次のコマンドを入力します

$Sudo apt-get install pandoc

TeXのインストール:PDFに変換する場合、nbconvertはTeXを使用します。次のコマンドを入力します

$Sudo apt-get install texlive-xetex

これらのコマンドの実行後、開いたノートブックを閉じてホームページを更新するか、開いたノートブックのカーネルを再起動します。今、PDFとしてノートブックをダウンロードしてみてください:)

注:詳細については、公式ドキュメントを参照してください。
https://nbconvert.readthedocs.io/en/latest/install.html

3
Yogesh

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

スクリーンショットipynbをpdfに変換

何らかの理由で機能しない場合は、別の方法を試してください。
[ファイル]-> [印刷プレビュー]を選択し、プレビューで
右クリック-> [印刷]を選択し、[pdfとして保存]を選択します。

1
Lefteris Xris

このPythonスクリプトには、PDFに変換するIpythonノートブックをエクスプローラーで選択するためのGUIがあります。 wkhtmltopdfを使用したアプローチは、うまく機能し、高品質のPDFを提供できる唯一のアプローチです。ここで説明する他のアプローチには問題があり、構文の強調表示が機能しないか、グラフが台無しになります。

Wkhtmltopdfをインストールする必要があります。 http://wkhtmltopdf.org/downloads.html

およびNbconvert

pip install nbconvert
# OR
conda install nbconvert

Pythonスクリプト

# Script adapted from CloudCray
# Original Source: https://Gist.github.com/CloudCray/994dd361dece0463f64a
# 2016--06-29
# This will create both an HTML and a PDF file

import subprocess
import os
from Tkinter import Tk
from tkFileDialog import askopenfilename

WKHTMLTOPDF_PATH = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf"  # or wherever you keep it

def export_to_html(filename):
    cmd = 'ipython nbconvert --to html "{0}"'
    subprocess.call(cmd.format(filename), Shell=True)
    return filename.replace(".ipynb", ".html")


def convert_to_pdf(filename):
    cmd = '"{0}" "{1}" "{2}"'.format(WKHTMLTOPDF_PATH, filename, filename.replace(".html", ".pdf"))
    subprocess.call(cmd, Shell=True)
    return filename.replace(".html", ".pdf")


def export_to_pdf(filename):
    fn = export_to_html(filename)
    return convert_to_pdf(fn)

def main():
    print("Export IPython notebook to PDF")
    print("    Please select a notebook:")

    Tk().withdraw() # Starts in folder from which it is started, keep the root window from appearing 
    x = askopenfilename() # show an "Open" dialog box and return the path to the selected file
    x = str(x.split("/")[-1])

    print(x)

    if not x:
        print("No notebook selected.")
        return 0
    else:
        fn = export_to_pdf(x)
        print("File exported as:\n\t{0}".format(fn))
        return 1

main()
1
Philipp Schwarz

この問題はUbuntuとMac OSXの両方で発生しました。必死の検索と試行の後、両方とも解決しました。これには、texpandocの両方が必要です。 Pythonのpipでは、両方のジャンボ外部プログラムをインストールできません。

Mac OSX:pandocのMacPortsインストールを使用

port install pandoc

これを完了するには、ほぼ1時間かかります(通常の場合)。問題が解決しない場合は、MacTeXディストリビューションのインストールが必要になる場合があります。 TeXLiveの。

Ubuntuの場合: ネットワークインストーラー からVanilla TeXLiveをインストールします-apt-getを使用しない。次に、apt-getを使用してpandocをインストールします。

Sudo apt-get install pandoc

TeXLiveの完全インストールには、ディスク上に最大4.4 GBが必要です。

この問題をすべて解決するために、IPython/Jupyter Notebookを使用するために推奨される方法は、Anaconda Pythonディストリビューションをインストールすることです。

1
Ébe Isaac

私が見つけたのは、nbconvert/utils/pandoc.pyにコードバグがあり、そのためにマシンのエラーが発生したことです。コードは、pandocが環境変数パスにあるかどうかを確認します。私のマシンでは、答えはノーです。ただし、pandoc.exeは!

解決策は、69行目のコードに「.exe」を追加することでした

if __version is None:
    if not which('pandoc.exe'):
        raise PandocMissing()

「xelatex」がインストールされていない場合も同様です。 94行目のnbconvert/exporters/pdf.pyファイルに追加します。

    cmd = which(command_list[0]+'.exe')
0
jvdam

真新しいメンバーとして、私は投稿にコメントを追加することはできませんでしたが、フィリップ・シュワルツが提供するソリューションが私のために働いたことを二番目に言いたいです。同様の状況にある人々が、重点を置いてより早くその道を試してくれることを願っています。改ページがないことはかなり長い間イライラする問題でしたので、上記の議論に感謝しています。

フィリップシュワルツが言ったように:「wkhtmltopdfをインストールする必要があります:[ http://wkhtmltopdf.org/downloads.html] [1]

およびNbconvert "

次に、「rawNBConvert」タイプのセルを追加し、以下を含めます。

<p style="page-break-after:always;"></p>

それは私にとってはうまくいくようで、生成されたPDFには対応する場所で改ページがありました。ただし、これらのユーティリティをインストールすると、ノートブックをHTMLとしてダウンロードし、ブラウザで開き、PDFに印刷する「通常の」パスのように見えるため、カスタムコードを実行する必要はありません。

0
Ody

これを理解するのにもいろいろな問題がありました。必要なものが正確に提供されるかどうかはわかりませんが、ノートブックをHTMLファイルとしてダウンロードし、ChromeブラウザーでプルアップしてからPDFファイルとして印刷しました。保存しました。すべてのコード、テキスト、グラフをキャプチャしました。私が必要とするものには十分でした。

0
twin_pilgrim

JupyterノートブックをPDFに変換するには、以下の手順に従ってください。

Jupyterノートブック内に配置):

オンMac OS

command + P->印刷ダイアログボックスが表示されます->宛先をPDFに変更します->印刷をクリックします

オンWindows

Ctrl + P->印刷ダイアログボックスが表示されます->宛先をPDFに変更->印刷をクリック

0
Akshay Ramesh