作業在 Jupyter 裡寫完了,繳交系統卻只收 PDF。你點了「下載為 PDF」,或者執行 jupyter nbconvert --to pdf,結果跳出錯誤:找不到 xelatex,或是缺少 pandoc。nbconvert 是透過 LaTeX 產生 PDF 的,所以得先裝好一整套 TeX 發行版,它才匯出得了任何東西。
Look Scanned 現在可以直接開啟 .ipynb 檔案了。在 Jupyter Notebook 轉掃描檔 PDF 頁面選好你的 Notebook,它就會直接在瀏覽器裡排版:Markdown 儲存格、程式碼,以及跟著檔案儲存的輸出。在預覽裡把頁面檢查一遍,就能下載 PDF。不必安裝任何東西,Notebook 也不會上傳。
先說清楚一點:Look Scanned 的用途是讓文件看起來像掃描檔,所以產生的 PDF 也是掃描檔的樣子。如果你的 Notebook 必須以「列印後掃描」的形式繳交,或者你就是想讓它看起來像紙本,這剛好適合。你可以把旋轉、模糊和雜訊都調到零,讓頁面乾淨一些,但每一頁仍然是圖片,所以 PDF 裡的文字無法選取,也無法搜尋。
怎麼把 .ipynb 檔案轉成掃描檔 PDF?
- 在 Jupyter、JupyterLab、VS Code 或 Google Colab 裡執行 Notebook 並儲存,讓輸出存進檔案。在 Colab 裡,請用「檔案 → 下載 → 下載 .ipynb」。
- 開啟 Jupyter Notebook 轉掃描檔 PDF,選擇
.ipynb檔案。 - 逐頁查看預覽,檢查程式碼、表格和圖表,再設定紙張大小和邊界。
- 調整掃描效果。把模糊和雜訊調低一點,小字的程式碼才看得清楚。頁面預設是灰階,想保留圖表的顏色就選「彩色」。
- 產生掃描檔 PDF 並下載。
如果需要圖片,也可以把每一頁匯出成 JPG 或 PNG。想了解怎麼選,請看掃描檔的 PDF、JPG 和 PNG 格式比較。使用專業版的話,批次掃描可以一次處理好幾個 .ipynb 檔案。
頁面上會出現什麼?
- Markdown 儲存格:標題、清單、表格、連結和圖片,包括直接貼進儲存格的圖片。
- 程式碼儲存格:依 Notebook 的程式語言做語法醒目提示,並標上
In [1]:提示字元。過長的程式碼會自動換行,不會超出頁面。 - 已儲存的輸出,標在
Out[1]:提示字元下:印出的文字、回傳值、pandas DataFrame 這類 HTML 表格,還有圖片,所以 matplotlib 或 seaborn 畫的圖都會出現。 - 錯誤訊息,連同完整的 traceback。
- 終端機輸出照終端機裡看到的樣子呈現。色彩控制碼會被移除,tqdm 這類進度列只保留最後的狀態,不會把每次更新都列出來。
開始之前,先了解這幾點
- 儲存格不會被執行。Look Scanned 只讀取檔案裡儲存的內容,沒有核心(kernel)。沒執行過的儲存格,或是清除輸出後才儲存的 Notebook,只會顯示程式碼,下面什麼都沒有。請先執行全部儲存格並儲存,再選擇檔案。
- 公式維持 TeX 原始碼。Markdown 儲存格裡用
$…$或$$…$$寫的公式會原樣顯示,例如$\alpha + \beta$,不會排成數學式。 - 互動式輸出不會顯示。Plotly、Bokeh 和 ipywidgets 都靠 JavaScript 繪製,而 JavaScript 不會執行。你看到的是 Notebook 一併儲存的靜態版本,常常只有一行簡短文字,甚至什麼都沒有。像 matplotlib 那樣存成圖片的圖表就沒問題。
- Notebook 必須是 nbformat 4。目前的 Jupyter、JupyterLab、VS Code 和 Colab 儲存的都是這個版本。很舊的 nbformat 3 Notebook 會被拒絕,用新版 Jupyter 開啟後再儲存一次即可升級。
- 寬表格會被壓窄。表格會縮到頁面寬度,所以欄位很多的 DataFrame 每一欄都會變窄並自動換行。
- 請保留原本的 Notebook。和真正的掃描檔一樣,PDF 是由頁面圖片組成的。要執行或修改程式碼,還是得用
.ipynb檔案。
Notebook 的讀取和排版都在你自己的裝置上完成,不會上傳到伺服器。唯一的例外是 Markdown 儲存格裡用網址引用的圖片:你的瀏覽器會從存放它的網站下載這張圖片,在 Jupyter 裡開啟時也是如此。
什麼時候比較適合用 nbconvert?
如果你需要可以選取的文字、排好版的公式,或是和 Jupyter 內建匯出一模一樣的 PDF,nbconvert 仍然是正確的選擇。安裝 TeX 發行版後執行 jupyter nbconvert --to pdf,或改用 --to webpdf,它透過無頭 Chromium 瀏覽器列印,完全不需要 LaTeX。不論哪一種方式,之後都可以把這個 PDF 放進 Look Scanned 加上掃描效果。
你的報告是 Markdown 或 LaTeX 檔案,而不是 Notebook?這些也能開啟:請看 Markdown 和 HTML 轉掃描檔 PDF 和 LaTeX 轉掃描檔 PDF。
手邊有需要繳交 PDF 的 Notebook 嗎?現在就來試試。