Problem
Original text:
「.note轉成pdf的東西我覺得macdoc也要加」
— Source: Claude Code session 2026-04-17
macdoc 目前已有 .note → html 轉換(NoteConverter,讀 Session.plist 筆畫向量 + 掛 Recordings/ 音訊,產出互動式 HTML player),但還沒有 .note → pdf。建議補上這個轉換,走同一條資料路線(讀 Session.plist 筆畫),輸出靜態 PDF。
Type
feature
Expected
macdoc convert --to pdf input.note --output output.pdf
輸出含完整手寫筆畫的靜態 PDF,不需要在 iPad 上開 Notability App 手動「分享 → PDF」。
Actual
目前 .note → pdf 未實作,執行會回報「不支援從 .note 轉換到 pdf」。
取得 Notability 筆記 PDF 的現有路徑都有缺陷:
extract_notability_pdf.py(teaching-toolkit 的 lecture-add skill) — heuristic 有結構性漏洞
- 只檢查
.note/PDFs/ 裡 PDF 的 size ≥ 500 KB、頁數 ≥ 3、含 Quartz PDFContext 標記
- 但 iOS 所有原生 App(備忘錄、Pages、Safari⋯)匯出的 PDF 都帶
Quartz PDFContext 標記,無法單憑此判斷 producer
- 結果:使用者匯入到 Notability 當底圖的「備忘錄匯出 PDF」被誤判為「Notability 完整筆記匯出」並被抓出
- 根本問題:真正的手寫筆畫在
Session.plist(vector ink),根本不存在 .note/PDFs/ 裡。.note/PDFs/ 只存使用者匯入的底圖資源
- Notability App「分享 → PDF」 — 需要 iPad/iPhone 在手,無法在 Mac 上批次處理
Impact
- Claude / LLM 教學分析:Claude 的
Read 工具會把 PDF 頁面 rasterize 成圖像餵給視覺模型,能直接「看」手寫內容。HTML 的 <canvas> 渲染結果無法被工具擷取——LLM 只能讀到原始 JS 和 stroke 座標點,拼不出視覺內容。所以 Claude 理解 Notability 筆記需要 PDF 格式。
- 列印 / 長期歸檔:PDF 跨平台可攜、能印出;HTML player 綁 JS 和錄音,不適合作為長期保存格式
- 具體實例:
teaching/20260305_wei/lectures/05_20260410/筆記 2026-04-10 15_31_24.note 的 Session.plist 有 1.8 MB 筆畫資料,extract_notability_pdf.py 卻只抓到備忘錄底圖(PDF metadata Creator 欄位顯示「備忘錄」,不是 Notability),老師在 Notability 上的教學註記全部丟失
實作入口
Sources/MacDocCLI/MacDoc+Convert.swift:107 目前:
case ("note", "html"):
try convertNoteToHTML(inputURL: inputURL)
建議補上:
case ("note", "pdf"):
try convertNoteToPDF(inputURL: inputURL)
實作方向:重用 NoteToHTML 模組的 Session.plist 筆畫解析邏輯,但改用 Core Graphics (CGContext 的 PDF context) 繪製,而非 HTML Canvas。音訊部分在 PDF 中無法互動,可以:
- 略過音訊(純筆畫版)
- 或把錄音時間軸做成 PDF 側邊的時間標註(選配)
Notes
- 做完這個之後,
teaching-toolkit/lecture-add/scripts/extract_notability_pdf.py 應改為呼叫 macdoc convert --to pdf,淘汰目前不可靠的 heuristic
Problem
macdoc 目前已有
.note → html轉換(NoteConverter,讀Session.plist筆畫向量 + 掛Recordings/音訊,產出互動式 HTML player),但還沒有.note → pdf。建議補上這個轉換,走同一條資料路線(讀Session.plist筆畫),輸出靜態 PDF。Type
feature
Expected
輸出含完整手寫筆畫的靜態 PDF,不需要在 iPad 上開 Notability App 手動「分享 → PDF」。
Actual
目前
.note → pdf未實作,執行會回報「不支援從 .note 轉換到 pdf」。取得 Notability 筆記 PDF 的現有路徑都有缺陷:
extract_notability_pdf.py(teaching-toolkit 的 lecture-add skill) — heuristic 有結構性漏洞.note/PDFs/裡 PDF 的 size ≥ 500 KB、頁數 ≥ 3、含Quartz PDFContext標記Quartz PDFContext標記,無法單憑此判斷 producerSession.plist(vector ink),根本不存在.note/PDFs/裡。.note/PDFs/只存使用者匯入的底圖資源Impact
Read工具會把 PDF 頁面 rasterize 成圖像餵給視覺模型,能直接「看」手寫內容。HTML 的<canvas>渲染結果無法被工具擷取——LLM 只能讀到原始 JS 和 stroke 座標點,拼不出視覺內容。所以 Claude 理解 Notability 筆記需要 PDF 格式。teaching/20260305_wei/lectures/05_20260410/筆記 2026-04-10 15_31_24.note的Session.plist有 1.8 MB 筆畫資料,extract_notability_pdf.py卻只抓到備忘錄底圖(PDF metadata Creator 欄位顯示「備忘錄」,不是 Notability),老師在 Notability 上的教學註記全部丟失實作入口
Sources/MacDocCLI/MacDoc+Convert.swift:107目前:建議補上:
實作方向:重用
NoteToHTML模組的Session.plist筆畫解析邏輯,但改用 Core Graphics (CGContext的 PDF context) 繪製,而非 HTML Canvas。音訊部分在 PDF 中無法互動,可以:Notes
teaching-toolkit/lecture-add/scripts/extract_notability_pdf.py應改為呼叫macdoc convert --to pdf,淘汰目前不可靠的 heuristic