PDF匯入Obsidian,變成可以編輯的筆記

作者 pdftomd.tools 團隊 · 更新於 · 約 6 分鐘閱讀

要把 PDF 匯入 Obsidian,有兩種做法。第一種是把檔案放進儲存庫(Vault),用 ![[檔案.pdf]] 內嵌來閱讀;第二種是先轉成 Markdown,例如用我們的 Obsidian 專用 PDF 轉檔工具,就會得到一篇能編輯、能搜尋、能互相連結的筆記。多數人兩種都用:筆記拿來思考,PDF 留著當出處。

插圖:一份 PDF 變成由筆記卡片互相連結而成的小型關聯圖

簡單說:內嵌還是轉檔

PDF 可以匯入 Obsidian 嗎?可以。PDF 是 Obsidian 支援的檔案格式,App 會用內建的檢視器開啟。不過放進儲存庫的 PDF 還是 PDF:裡面的文字不算你的筆記,沒辦法編輯,想連結到某個想法也只能連到整個檔案。所以「PDF匯入Obsidian 要怎麼變成筆記」有兩種答案:

  • 內嵌:適合主要拿來讀的文件,像合約、說明手冊、簡報,只要版面很重要的都算。
  • 轉檔:適合要處理內容的時候,像是引用、改寫、把某一節連到其他筆記,或跟儲存庫裡其他筆記一起搜尋。

如果不確定,就先內嵌,之後再轉檔。不會損失什麼,PDF 不管怎樣都留在儲存庫裡。很多人是發現自己正對著檢視器一個字一個字打引文時,才決定開始轉檔。

插圖:左邊是內嵌 PDF 檢視器的筆記,右邊是有游標、文字可以編輯的筆記
內嵌是把頁面放在筆記裡顯示;轉檔是讓頁面本身變成筆記。

內嵌 PDF,還有它做不到的事

把 PDF 拖進一篇開著的筆記,Obsidian 會把它複製到附件資料夾並內嵌。你也可以自己打語法。內嵌語法可以在 # 後面加參數:

![[Annual report.pdf]]
![[Annual report.pdf#page=3]]
![[Annual report.pdf#page=3&height=400]]
整份檔案、從第 3 頁開啟,以及在 400 像素高的檢視器裡顯示第 3 頁。

內嵌 PDF 是把原文放在自己文字旁邊最快的方法。桌面版的檢視器有頁面縮圖、檔案目錄和文件內搜尋,也能從縮圖複製單一頁面的連結,貼到任何筆記裡。限制則寫在 Obsidian 自己的 PDF 說明頁:

“Obsidian 不支援在 PDF 上加入註解或螢光標記。”
Obsidian Help, PDFs(翻譯)

手機版也無法在 PDF 裡搜尋,或從中複製引文。想要畫重點、引用、連結到特定想法,就需要文字,也就是需要轉檔。

透過轉檔,把 PDF 匯入 Obsidian 變成筆記

要把 PDF 匯入 Obsidian 變成可編輯的筆記,請先轉成 Markdown。只要 PDF 有文字層,我們的轉檔工具就會在瀏覽器裡讀取檔案,重建標題、清單和表格,並拿掉重複的頁首和頁碼。下載 .md 檔,移進儲存庫,它就會跟其他筆記一樣出現在檔案總管裡。

螢幕截圖:匯入 Obsidian 前先轉換 PDF,轉檔工具顯示一份 5 頁指南的 Markdown
螢幕截圖:在我們的 Obsidian 頁面轉好的 5 頁指南,可以直接下載成筆記。

開始建立連結前,先檢查三件事。標題要能組成清楚的大綱,因為它們就是之後的連結目標。每個表格只能有一列標題列。還有,掃描的 PDF 轉出來會是空白,因為我們的工具不做 OCR;這類檔案就維持內嵌,或先用 OCR 工具處理。完整的檢查清單在 保留格式教學。

匯入之後,花幾分鐘整理很值得。把筆記標題改短,因為之後要在 [[ ]] 裡打的就是它。把層級錯的標題改正,大綱檢視和標題連結都會照層級走。刪掉重複的文字,例如每章結尾的版權聲明。等各節都有標題後,再把作者寫的「見第 4 節」這類交互參照改成真正的連結。

範本:Front Matter、出處連結、標籤

每篇轉好的筆記,最上面都加上同一組 屬性。Obsidian 會讀取兩行 --- 之間的 YAML,顯示成欄位;tags 和 aliases 是內建屬性。其中最重要的是 source 連結,它把筆記和原始檔案連在一起。

---
source: "[[Annual report.pdf]]"
author:
year:
aliases:
tags:
  - literature
  - to-read
---
貼在筆記最上方。屬性裡的連結要加引號。

這就是典型的文獻筆記:一份資料一篇筆記,在作者每個標題底下寫自己的想法。標籤用法保持一致,Obsidian 的搜尋和 Bases 檢視就能依作者、年份或狀態列出所有資料。如果你每週都要把 PDF 匯入 Obsidian,固定用一個範本,最後留下的會是一百份查得到的資料,而不是一百個格式各不相同的檔案。

把長篇 PDF 拆成互相連結的筆記

40 頁的報告塞在同一篇筆記裡,很難連結。照章節標題拆開,就會得到每節一篇筆記,再加上一篇列出所有章節的索引筆記。每個部分裡的標題連結照樣能用([[章節筆記#小標題]]),關聯圖也看得出你的筆記跟哪些章節有關。

插圖:一篇很長的 Markdown 筆記被切成一篇索引筆記,連到四篇章節筆記
一個轉好的檔案,變成一篇索引筆記加上每節一篇筆記。

我們寫了一支只用 Python 標準函式庫的小腳本來做這件事。它會在標題底下最高的那一層章節拆開,因為轉檔工具不一定用 ## 表示章節(我們的工具就依字級,替其中一個測試檔選了 ###)。每篇章節筆記都有同樣的屬性,外加一個回到索引的連結:

import re, pathlib

def split_into_notes(md, title, pdf_name, out):
    out.mkdir(parents=True, exist_ok=True)
    levels = [len(h) for h in re.findall(r"(?m)^(#{2,6}) ", md)]
    if not levels:
        return []
    parts = re.split(rf"(?m)^{'#' * min(levels)} +", md)
    intro, names = parts[0], []
    for sec in parts[1:]:
        heading, _, body = sec.partition("\n")
        name = " ".join(re.sub(r'[\\/:*?"<>|#^\[\]]', " ", heading).split())[:80]
        names.append(name)
        (out / f"{name}.md").write_text(
            f'---\nsource: "[[{pdf_name}]]"\nparent: "[[{title}]]"\ntags: [literature]\n---\n'
            f"# {heading.strip()}\n{body.strip()}\n", encoding="utf-8")
    links = "\n".join(f"- [[{n}]]" for n in names)
    (out / f"{title}.md").write_text(
        f'---\nsource: "[[{pdf_name}]]"\ntags: [literature]\n---\n{intro.strip()}\n\n{links}\n', encoding="utf-8")
    return names
從檔名移除的字元,剛好就是會讓 Obsidian 連結或檔案系統出問題的那些。

在我們的測試中,這支腳本把 5 頁英文指南拆成 10 篇筆記(1 篇索引、9 個章節),把 11 頁中文報告拆成 13 篇筆記,每個連結都能正常開啟。如果是一整個資料夾的論文,先用我們的 批次轉檔工具,再對每個檔案各跑一次腳本。

拆不拆都可以。短文、不到十頁的論文,或只會讀一次的資料,用一篇有標題連結的筆記比較簡單。當各章節會被分開使用時再拆:要分章引用的書、條文有編號的規範,或各部分會在不同筆記裡討論的報告。

讓原始 PDF 一直和筆記連在一起

  • 一個附件資料夾。在設定的「檔案與連結」裡,把新附件的存放位置設成像 資料來源/ 這樣的資料夾,拖進來的 PDF 都會放到那裡。
  • 同樣的檔名。年度報告.pdf 和 年度報告.md 放在一起,一眼就配得起來。
  • 雙向連結。筆記的 source 屬性指向 PDF;需要看版面時,就在正在寫的段落下方用 ![[年度報告.pdf#page=12]] 內嵌那一頁。
  • 不要為了修筆記去改 PDF。改 Markdown 就好,PDF 保持原樣當作參考依據。

有了這層連結,就算過了幾個月,從 PDF 到筆記的路還是可靠的,隨時都能回到引文出處那一頁。這也是 PDF匯入Obsidian 的最後一步,接下來就是平常的寫筆記了。

社群外掛:安裝前要確認的事

不少社群外掛標榜能匯入 PDF、擷取螢光標記或做 OCR。啟用之前,先讀一下 Obsidian 的 外掛安全性 頁面。上面說明 Obsidian 無法把外掛限制在特定權限內,所以外掛可以存取你電腦裡的檔案、連上網路、安裝其他程式。請確認四件事:

  1. 它會把你的 PDF 傳到線上服務嗎?README 應該要寫清楚;如果要你填某個服務的存取金鑰,就當作它會上傳。
  2. 最後一次更新是什麼時候?能不能在你的 Obsidian 版本上執行?
  3. 原始碼有公開嗎?用的是什麼授權?
  4. 用 Obsidian 以外的轉檔工具加上一篇普通筆記,是不是也能做到?很多時候可以,而且儲存庫裡不用多跑任何東西。

資料來源

  1. Accepted file formats — Obsidian Help
  2. Embed files: Embed a PDF in a note — Obsidian Help
  3. PDFs — Obsidian Help
  4. Internal links: Link to a heading in a note — Obsidian Help
  5. Properties — Obsidian Help
  6. Plugin security — Obsidian Help

常見問題

PDF 可以匯入 Obsidian 嗎?

可以。放進儲存庫後,Obsidian 會用檢視器開啟,或用 ![[檔案.pdf]] 內嵌到筆記裡。想編輯文字,就把 PDF 轉成 Markdown,再當作筆記匯入。

要怎麼把 PDF 匯入 Obsidian 變成筆記?

把 PDF 轉成 Markdown,把 .md 移進儲存庫,加上含有 source 連結(指向 PDF)的屬性;如果想要每節一篇筆記,就依標題把長檔案拆開。

可以在 Obsidian 裡替 PDF 畫重點嗎?

內建檢視器不行,Obsidian 說明文件寫明不支援註解和螢光標記。可以在轉好的 Markdown 裡用 ==文字== 標記,或在其他 App 裡替 PDF 加註解。

怎麼連結到 PDF 的某一頁?

用 ![[檔案.pdf#page=3]] 內嵌,或在檢視器裡對頁面縮圖按右鍵,複製它的連結。

轉好的筆記會保留 PDF 的標題嗎?

有文字層的 PDF 通常會:我們的轉檔工具會依字級對應標題層級。記得檢查大綱,最上層有時會變成 ### 而不是 ##。

轉檔工具會上傳我的 PDF 嗎?

不會。它在你的瀏覽器裡執行,Markdown 是在你的裝置上產生的。