Skip to content

PDF 导出最佳实践

将 Obsidian 笔记导出为 PDF 是常见需求——无论是分享文章、提交报告还是归档保存。本指南介绍从简单到专业的各种 PDF 导出方案。

方案概览

方案难度适用场景自定义程度
Obsidian 原生导出快速单篇导出
Pandoc 命令行⭐⭐批量导出/学术论文
Pandoc Plugin 插件⭐⭐常用导出
Obsidian Export 插件⭐⭐批量导出完整仓库
浏览器打印简单快速

方案一:Obsidian 原生导出

最简单的方式,适合快速导出单篇笔记。

操作步骤

  1. 打开要导出的笔记
  2. 点击右上角 菜单 → 导出为 PDF
  3. 选择保存位置

优点

  • 零配置,即用即走
  • 保留基本格式:标题、列表、代码块、表格
  • 支持中文

局限

  • 仅支持单篇导出
  • 样式自定义有限
  • 不支持自定义页面大小
  • 导出效果依赖当前主题

方案二:Pandoc 命令行导出

最强大的方案,适合需要高度自定义的场景。

安装 Pandoc

bash
# macOS
brew install pandoc

# Ubuntu/Debian
sudo apt install pandoc

# Windows
# 从 https://pandoc.org/installing.html 下载安装

基本导出

bash
pandoc note.md -o note.pdf

通过 LaTeX 模板导出(支持中文)

bash
# 需要安装 LaTeX 引擎(推荐 XeLaTeX 支持中文)
# macOS
brew install --cask mactex-no-gui

# 安装后导出
pandoc note.md -o note.pdf \
  --pdf-engine=xelatex \
  -V CJKmainfont="Noto Sans CJK SC"

自定义 PDF 样式

创建一个 YAML 头部或参考文档来控制样式:

bash
# 使用参考文档
pandoc note.md -o note.pdf \
  --pdf-engine=xelatex \
  --reference-doc=template.tex \
  -V CJKmainfont="Noto Sans CJK SC" \
  -V geometry:margin=1in \
  -V fontsize=12pt \
  -V documentclass=article \
  -V mainfont="Noto Sans CJK SC"

从 Obsidian 属性生成标题页

如果你的笔记有 Properties,可以利用 Pandoc 的模板功能:

yaml
---
title: 报告标题
author: 作者名
date: 2026-05-14
---
bash
pandoc report.md -o report.pdf \
  --pdf-engine=xelatex \
  -V CJKmainfont="Noto Sans CJK SC" \
  --standalone

批量导出

bash
# 将目录下所有 md 文件导出为 PDF
for f in *.md; do
  pandoc "$f" -o "${f%.md}.pdf" --pdf-engine=xelatex -V CJKmainfont="Noto Sans CJK SC"
done

方案三:Pandoc Plugin 插件

在 Obsidian 内部使用 Pandoc,免去命令行操作。

安装与配置

  1. 安装 Pandoc Plugin 插件
  2. 确保系统已安装 Pandoc
  3. 在插件设置中配置导出参数

推荐配置

yaml
导出格式: PDF
PDF 引擎: xelatex
中文字体: Noto Sans CJK SC
页面边距: 1in
字体大小: 12pt

使用

  1. 打开命令面板 (Ctrl/Cmd + P)
  2. 搜索 Pandoc Plugin: Export
  3. 选择 PDF 格式

方案四:Obsidian Export 插件

适合批量导出整个仓库或子目录。

特点

  • 支持 Markdown → PDF 批量转换
  • 保留内部链接(转为相对路径)
  • 支持 Frontmatter 过滤
  • 命令行工具

安装

bash
# 需要安装 Rust 环境
cargo install obsidian-export

使用

bash
# 导出整个仓库
obsidian-export /path/to/vault /path/to/output

# 导出单个目录
obsidian-export /path/to/vault/notes /path/to/output

方案五:浏览器打印

简单快速的导出方式。

操作步骤

  1. 在 Obsidian 中打开笔记
  2. 使用 Ctrl/Cmd + P 打印
  3. 选择"另存为 PDF"
  4. 调整页面设置

技巧

  • 先切换到阅读模式获得更好的排版
  • 使用阅读视图的宽度控制输出宽度
  • 可以利用 CSS 片段自定义打印样式

自定义打印样式

obsidian.css 片段中添加打印媒体查询:

css
@media print {
  /* 隐藏不需要的元素 */
  .nav-header, .nav-footer, .side-dock-ribbon {
    display: none !important;
  }
  
  /* 调整字体 */
  body {
    font-size: 12pt;
    line-height: 1.6;
  }
  
  /* 控制分页 */
  h1, h2 {
    page-break-after: avoid;
  }
  
  /* 代码块处理 */
  pre {
    white-space: pre-wrap;
    word-break: break-all;
  }
}

中文 PDF 导出常见问题

字体缺失导致乱码

解决方案:安装中文字体并指定字体

bash
# 安装 Noto CJK 字体
# Ubuntu
sudo apt install fonts-noto-cjk

# macOS
brew install font-noto-sans-cjk-sc

# Pandoc 导出时指定字体
-V CJKmainfont="Noto Sans CJK SC"

表格溢出

解决方案:调整页面边距和表格宽度

bash
-V geometry:margin=1in

或在 CSS 中:

css
table {
  font-size: 0.9em;
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
}

代码块无法换行

解决方案

bash
# Pandoc 添加
-V highlightstyle=tango

或在 LaTeX 中使用 listings 包处理代码块。

导出质量检查清单

导出 PDF 后,建议检查以下项目:

  • [ ] 中文字体显示正常
  • [ ] 代码块格式完整
  • [ ] 表格未溢出
  • [ ] 图片嵌入正确
  • [ ] 数学公式渲染正确
  • [ ] 链接可点击(电子版)
  • [ ] 页面边距合适
  • [ ] 目录/书签正确

各方案对比总结

需求推荐方案
偶尔导出单篇笔记原生导出
学术论文/报告Pandoc + XeLaTeX
频繁导出且不熟悉命令行Pandoc Plugin
批量导出仓库Obsidian Export
快速分享网页版内容浏览器打印
需要精美排版Pandoc + 自定义 LaTeX 模板

相关内容