[英]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 格式。 否則按照這兩個步驟。
對於 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 格式。
將 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 的專家。
如果您的文檔中有數學、科學公式,那么只有這個答案對您有用。 即使您沒有它們,它也可以正常工作。
圖形界面方式
然后檢查您的下載文件夾中的文件。 PS:如果 LaTeX 在編譯 PDF 時出現任何錯誤,它將失敗。 如果發生這種情況,請下載 HTML 文件,然后使用網頁轉 PDF 工具或任何其他類似服務將 HTML 轉換為 PDF。
命令行方式
PS:如果失敗,請嘗試Yogesh 的回答。
如果您使用的是sagemath雲版本,您可以簡單地轉到左下角,
通過 LaTeX (.pdf) 選擇文件 → 下載為 → Pdf
如果需要,請檢查屏幕截圖。
如果由於任何原因它不起作用,您可以嘗試另一種方法。
選擇文件→打印預覽,然后在預覽
右鍵單擊→打印,然后選擇另存為pdf。
您可以先將筆記本轉換為 HTML,然后再轉換為 PDF 格式:
以下我已經實施的步驟:操作系統:Ubuntu、Anaconda-Jupyter notebook、Python 3
啟動要以 HTML 格式保存的 jupyter notebook。 首先正確保存筆記本,以便 HTML 文件具有您的代碼/筆記本的最新保存版本。
從筆記本本身運行以下命令:
!jupyter nbconvert --to html your_notebook_name.ipynb
執行后將創建筆記本的 HTML 版本並將其保存在當前工作目錄中。 您將看到一個 html 文件將添加到當前目錄中,名稱為your_notebook_name.html
( your_notebook_name.ipynb
--> your_notebook_name.html
)。
your_notebook_name.html
文件(單擊它)。 它將在瀏覽器的新選項卡中打開。請注意,從打印選項中,我們還可以靈活地選擇筆記本的一部分以保存為 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 很簡單:
沒有打印預覽,沒有打印,沒有 nbconvert。 使用 Jupyter Version: 1.0.0
。 只是一個嘗試的建議(顯然並非所有設置都相同)。
其他建議的方法:
使用“打印然后選擇另存為 pdf”。 從您的 HTML 文件中刪除將導致邊界邊緣丟失、語法突出顯示、繪圖修剪等。
在使用過時的版本時,其他一些庫已被證明是損壞的。
解決方案:更好、更輕松的選擇是使用在線轉換器,它將 *.ipynb 的 *.html 版本轉換為 *.pdf。
腳步:
文件 > 下載為 > HTML(.html)
在此處上傳新創建的 *.html 文件,然后選擇 HTML 到 PDF 選項。
您的 pdf 文件現在可以下載了。
您現在擁有 .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版本。
import os
[os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
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 格式的方法。
請在 Jupyter Notebook 應用中打開您要導出的筆記本,然后從您的網絡瀏覽器選項中選擇打印。 應該有一個選項Save as PDF
。 這是最簡單的方法。
在 Jupyter Notebook 中有一個直接導出 PDF 的選項。 單擊File
-> Download as
-> PDF via LaTeX
或PDF 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
僅在第一次使用時才需要。
有一個用於共享筆記本的開源框架Mercury
。 它將筆記本轉換為交互式文檔(可以隱藏代碼)。 在Mercury
中,用戶可以調整小部件的值並使用新參數執行 notebook。 生成的筆記本可以下載為 PDF(或 HTML)文件。
對於那些無法安裝第三方軟件並需要從 IPYNB 快速轉換為 PDF、HTML 和其他格式的人,我測試了一個免費的在線應用程序:
垂直 IPYNB 轉 PDF
垂直 IPYNB 到 HTML
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.