簡體   English   中英

如何將 IPython 筆記本轉換為 PDF 和 HTML?

[英]How to convert IPython notebooks to PDF and HTML?

我想將我的 ipython-notebooks 轉換為打印它們,或者只是以 html 格式發送它們。 我注意到已經有一個工具可以做到這一點, nbconvert 雖然我已經下載了它,但我不知道如何使用 nbconvert2.py 轉換筆記本,因為 nbconvert 說它已被棄用。 nbconvert2.py 說我需要一個配置文件來轉換筆記本,它是什么? 是否存在有關此工具的文檔?

如果您安裝了 LaTeX,您可以使用File -> Download as -> PDF via LaTeX (.pdf)直接從 Jupyter notebook 下載 PDF 格式。 否則按照這兩個步驟。

  1. 對於 HTML 輸出,您現在應該使用 Jupyter 代替 IPython 並選擇File -> Download as -> HTML (.html)或運行以下命令:

     jupyter nbconvert --to html notebook.ipynb

    這會將 Jupyter 文檔文件 notebook.ipynb 轉換為 html 輸出格式。

    Google Colaboratory 是 Google 的免費 Jupyter 筆記本環境,無需設置,完全在雲中運行。 如果您使用的是 Google Colab,命令是相同的,但 Google Colab 只允許您下載 .ipynb 或 .py 格式。

  2. 將 html 文件 notebook.html 轉換為名為 notebook.pdf 的 pdf 文件。 在 Windows、macOS ( brew install wkhtmltodf ) 或 Linux 中,安裝wkhtmltopdf wkhtmltopdf 是一個命令行實用程序,用於使用 WebKit 將 html 轉換為 pdf。 您可以從鏈接的網頁下載 wkhtmltopdf,或者在許多 Linux 發行版中可以在其存儲庫中找到它。

     wkhtmltopdf notebook.html notebook.pdf

原始(現在幾乎已過時)修訂:將 IPython 筆記本文件轉換為 html。

ipython nbconvert --to html notebook.ipynb

還傳遞--execute標志以生成輸出單元

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

最佳做法是將輸出保留在筆記本之外以進行版本控制,請參閱: 在版本控制下使用 IPython 筆記本

但是,如果您不通過--execute ,輸出將不會出現在 HTML 中,另請參閱: 如何從終端運行 .ipynb Jupyter Notebook?

對於沒有標題的 HTML 片段: How to export an IPython notebook to HTML for a blog post?

在 Jupyter 4.4.0 中測試。

文檔

如果您想向其他人提供您筆記本的靜態 HTML 或 PDF 視圖,請使用“打印”按鈕。 這將打開文檔的靜態視圖,您可以使用操作系統的工具將其打印為 PDF,或者使用 Web 瀏覽器的“保存”選項保存到文件(請注意,通常這將創建一個 html 文件和一個名為notebook_name_files 旁邊包含所有必要的樣式信息,因此如果您打算共享它,則必須將目錄與主 html 文件一起發送)。

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

給你現有的配置文件。 (您可以創建自己的,cf future doc,. ./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 個人資料)正在處理 tex/pdf/sphinx 導出,並且在撰寫本文時是從 ipynb 文件生成 PDF 的專家。

  1. 另存為HTML ;
  2. Ctrl + P ;
  3. 另存為PDF

如果您的文檔中有數學、科學公式,那么只有這個答案對您有用。 即使您沒有它們,它也可以正常工作。

圖形界面方式

  • 打開 jupyter 筆記本打開 jupyter 筆記本

  • 通過 LaTeX 轉到文件 > 下載為 > HTML 或 PDF 通過 LaTeX 轉到文件 > 下載為 > HTML 或 PDF

  • 然后檢查您的下載文件夾中的文件。 PS:如果 LaTeX 在編譯 PDF 時出現任何錯誤,它將失敗。 如果發生這種情況,請下載 HTML 文件,然后使用網頁轉 PDF 工具或任何其他類似服務將 HTML 轉換為 PDF。

命令行方式

  • 打開終端
  • 導航到包含 jupyter 筆記本的文件夾
  • 輸入“jupyter nbconvert --to pdf your_jupyter_notebook.ipynb”

PS:如果失敗,請嘗試Yogesh 的回答

如果您使用的是sagemath雲版本,您可以簡單地轉到左下角,
通過 LaTeX (.pdf) 選擇文件 → 下載為 → Pdf
如果需要,請檢查屏幕截圖。

屏幕截圖 將 ipynb 轉換為 pdf

如果由於任何原因它不起作用,您可以嘗試另一種方法。
選擇文件→打印預覽,然后在預覽
右鍵單擊→打印,然后選擇另存為pdf。

您可以先將筆記本轉換為 HTML,然后再轉換為 PDF 格式:

以下我已經實施的步驟:操作系統:Ubuntu、Anaconda-Jupyter notebook、Python 3

1 以 HTML 格式保存筆記本:

  1. 啟動要以 HTML 格式保存的 jupyter notebook。 首先正確保存筆記本,以便 HTML 文件具有您的代碼/筆記本的最新保存版本。

  2. 從筆記本本身運行以下命令:

    !jupyter nbconvert --to html your_notebook_name.ipynb

執行后將創建筆記本的 HTML 版本並將其保存在當前工作目錄中。 您將看到一個 html 文件將添加到當前目錄中,名稱為your_notebook_name.html

( your_notebook_name.ipynb --> your_notebook_name.html )。

2 將 html 保存為 PDF:

  1. 現在打開your_notebook_name.html文件(單擊它)。 它將在瀏覽器的新選項卡中打開。
  2. 現在轉到打印選項。 從這里您可以將此文件保存為 pdf 文件格式。

請注意,從打印選項中,我們還可以靈活地選擇筆記本的一部分以保存為 pdf 格式。

簡單直接的方式只是

1- 在 Jupiter notebook 中單擊 Ctrl + P

2-另存為PDF 在此處輸入圖像描述

我發現將網絡上的筆記本轉換為 pdf 的最簡單方法是首先在網絡服務nbviewer上查看它。 然后,您可以將其打印為 pdf 文件。 如果筆記本在您的本地驅動器上,則首先將其上傳到 github 存儲庫並將其 url 用於 nbviewer。

對於那些無法在他們的系統中安裝wkhtmltopdf的人,除了這個問題的答案中已經提到的許多方法之外,還有一種方法是簡單地從 jupyter notebook 下載文件作為 HTML 文件,將其上傳到HTML to PDF ,然后下載從那里轉換的pdf文件。

在這里,您將 IPython 筆記本 (.ipynb) 轉換為 PDF (.pdf) 和 HTML (.html) 格式。

我還不能讓 pdf 工作。 文檔暗示我應該能夠讓它與乳膠一起使用,所以也許我的乳膠不起作用。

$ 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' <type 'unicode'> 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”庫。 我正在調查那個。

我一直在尋找一種將筆記本保存為 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 只是一個嘗試的建議(顯然並非所有設置都相同)。

其他建議的方法:

  1. 使用“打印然后選擇另存為 pdf”。 從您的 HTML 文件中刪除將導致邊界邊緣丟失、語法突出顯示、繪圖修剪等。

  2. 在使用過時的版本時,其他一些庫已被證明是損壞的。

解決方案:更好、更輕松的選擇是使用在線轉換器,它將 *.ipynb 的 *.html 版本轉換為 *.pdf。

腳步:

  1. 首先,從您的 Jupyter 筆記本界面,使用以下命令將您的 *.ipynb 轉換為 *.html:

文件 > 下載為 > HTML(.html)

  1. 此處上傳新創建的 *.html 文件,然后選擇 HTML 到 PDF 選項。

  2. 您的 pdf 文件現在可以下載了。

  3. 您現在擁有 .ipynb、.html 和 .pdf 文件

我在 inline python 中結合了上面的一些答案,您可以將它們添加到 ~/.bashrc 或 ~/.zshrc 以編譯並將許多筆記本轉換為單個 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 * 
}

partizanos answer的純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 在當前文件夾中。 如有必要,將其復制到當前文件夾。
  • 輸入“python tejas.py”
  • 任務完成

notebook-as-pdf安裝

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

用它

您也可以將它與 nbconvert 一起使用:

jupyter-nbconvert --to PDFviaHTML filename.ipynb

這將創建一個名為 filename.pdf 的文件。

或 pip install notebook-as-pdf

從筆記本 jupyter-nbconvert-toPDFviaHTML 創建 pdf

有一個名為“notebook as PDF”的pip install notebook-as-pdf

它通過 HTML 將筆記本轉換為 pdf。 安裝庫后,您可以在“文件”選項卡的“下載為”選項中找到“PDF via HTML (.pdf)”。

文件>下載為>PDF通過HTML(.pdf)

在此處輸入圖像描述

使用 Ctrl+P

  • 有時,當有許多單元格時,選項可能無法正常工作。

  • 此外,分頁也不正確。 使讀者更難閱讀和理解。

與此處介紹的其他選項相比,我發現此方法非常直觀、快速且更好。

您可以使用這個簡單的在線服務。 它支持 HTML 和 PDF。

最好和最簡單的方式

只需按

Mac中的Command + P.

Windows中的Control + P.

打開“打印”菜單,然后選擇“另存為pdf”並按“保存”。

我認為最簡單的方法是“Ctrl+P”>另存為“pdf”。 而已。

我知道並在下面描述了 4 種將 Jupyter Notebook 導出為 PDF 格式的方法。

1. 打印為 PDF

請在 Jupyter Notebook 應用中打開您要導出的筆記本,然后從您的網絡瀏覽器選項中選擇打印。 應該有一個選項Save as PDF 這是最簡單的方法。

2. 使用 Jupyter 導出為 PDF

在 Jupyter Notebook 中有一個直接導出 PDF 的選項。 單擊File -> Download as -> PDF via LaTeXPDF via HTML 此解決方案在后台使用nbconvert工具。 您需要安裝其他軟件包才能使其正常工作,否則您將得到500: Internal Server Error 有關詳細信息,請查看nbconvert 安裝文檔

nbconvert

該解決方案類似於第 2 點,但使用的是命令行工具nbconvert 假設安裝了所有其他軟件包,轉換非常簡單:

jupyter nbconvert --to webpdf --allow-chromium-download your-notebook-file.ipynb

--allow-chromium-download僅在第一次使用時才需要。

4. 使用 Mercury 導出

有一個用於共享筆記本的開源框架Mercury 它將筆記本轉換為交互式文檔(可以隱藏代碼)。 Mercury中,用戶可以調整小部件的值並使用新參數執行 notebook。 生成的筆記本可以下載為 PDF(或 HTML)文件。

對於那些無法安裝第三方軟件並需要從 IPYNB 快速轉換為 PDF、HTML 和其他格式的人,我測試了一個免費的在線應用程序:
垂直 IPYNB 轉 PDF
垂直 IPYNB 到 HTML

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM