---
title: "Jupyter Notebook（.ipynb）轉掃描檔 PDF：不用 nbconvert，也不用裝 LaTeX"
description: "Look Scanned 現在可以開啟 Jupyter Notebook 了。選好 .ipynb 檔案，在預覽裡檢查程式碼、輸出和圖表，再儲存一份像列印後掃描出來的 PDF。"
date: 2026-10-08T01:00:00.000Z
lang: zh-TW
source: https://lookscanned.io/zh-TW/blog/ipynb-to-scanned-pdf
tags: ["Jupyter", "PDF", "產品更新"]
---

# Jupyter Notebook（.ipynb）轉掃描檔 PDF：不用 nbconvert，也不用裝 LaTeX

作業在 Jupyter 裡寫完了，繳交系統卻只收 PDF。你點了「下載為 PDF」，或者執行 `jupyter nbconvert --to pdf`，結果跳出錯誤：找不到 `xelatex`，或是缺少 pandoc。nbconvert 是透過 LaTeX 產生 PDF 的，所以得先裝好一整套 TeX 發行版，它才匯出得了任何東西。

Look Scanned 現在可以直接開啟 `.ipynb` 檔案了。在 [Jupyter Notebook 轉掃描檔 PDF](https://lookscanned.io/zh-TW/scan/ipynb) 頁面選好你的 Notebook，它就會直接在瀏覽器裡排版：Markdown 儲存格、程式碼，以及跟著檔案儲存的輸出。在預覽裡把頁面檢查一遍，就能下載 PDF。不必安裝任何東西，Notebook 也不會上傳。

先說清楚一點：Look Scanned 的用途是讓文件看起來像掃描檔，所以產生的 PDF 也是掃描檔的樣子。如果你的 Notebook 必須以「列印後掃描」的形式繳交，或者你就是想讓它看起來像紙本，這剛好適合。你可以把旋轉、模糊和雜訊都調到零，讓頁面乾淨一些，但每一頁仍然是圖片，所以 PDF 裡的文字無法選取，也無法搜尋。

## 怎麼把 .ipynb 檔案轉成掃描檔 PDF？

1. 在 Jupyter、JupyterLab、VS Code 或 Google Colab 裡執行 Notebook 並儲存，讓輸出存進檔案。在 Colab 裡，請用「檔案 → 下載 → 下載 .ipynb」。
2. 開啟 [Jupyter Notebook 轉掃描檔 PDF](https://lookscanned.io/zh-TW/scan/ipynb)，選擇 `.ipynb` 檔案。
3. 逐頁查看預覽，檢查程式碼、表格和圖表，再設定紙張大小和邊界。
4. 調整掃描效果。把模糊和雜訊調低一點，小字的程式碼才看得清楚。頁面預設是灰階，想保留圖表的顏色就選「彩色」。
5. 產生掃描檔 PDF 並下載。

如果需要圖片，也可以把每一頁匯出成 JPG 或 PNG。想了解怎麼選，請看[掃描檔的 PDF、JPG 和 PNG 格式比較](https://lookscanned.io/zh-TW/blog/scanned-document-pdf-jpg-png)。使用專業版的話，[批次掃描](https://lookscanned.io/zh-TW/scan/bulk)可以一次處理好幾個 `.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](https://lookscanned.io/zh-TW/blog/html-markdown-to-scanned-pdf) 和 [LaTeX 轉掃描檔 PDF](https://lookscanned.io/zh-TW/blog/latex-to-scanned-pdf)。

手邊有需要繳交 PDF 的 Notebook 嗎？[現在就來試試](https://lookscanned.io/zh-TW/scan/ipynb)。
