PDF 导出最佳实践
将 Obsidian 笔记导出为 PDF 是常见需求——无论是分享文章、提交报告还是归档保存。本指南介绍从简单到专业的各种 PDF 导出方案。
方案概览
| 方案 | 难度 | 适用场景 | 自定义程度 |
|---|---|---|---|
| Obsidian 原生导出 | ⭐ | 快速单篇导出 | 低 |
| Pandoc 命令行 | ⭐⭐ | 批量导出/学术论文 | 高 |
| Pandoc Plugin 插件 | ⭐⭐ | 常用导出 | 中 |
| Obsidian Export 插件 | ⭐⭐ | 批量导出完整仓库 | 中 |
| 浏览器打印 | ⭐ | 简单快速 | 低 |
方案一:Obsidian 原生导出
最简单的方式,适合快速导出单篇笔记。
操作步骤
- 打开要导出的笔记
- 点击右上角
⋯菜单 → 导出为 PDF - 选择保存位置
优点
- 零配置,即用即走
- 保留基本格式:标题、列表、代码块、表格
- 支持中文
局限
- 仅支持单篇导出
- 样式自定义有限
- 不支持自定义页面大小
- 导出效果依赖当前主题
方案二: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,免去命令行操作。
安装与配置
- 安装
Pandoc Plugin插件 - 确保系统已安装 Pandoc
- 在插件设置中配置导出参数
推荐配置
yaml
导出格式: PDF
PDF 引擎: xelatex
中文字体: Noto Sans CJK SC
页面边距: 1in
字体大小: 12pt使用
- 打开命令面板 (
Ctrl/Cmd + P) - 搜索
Pandoc Plugin: Export - 选择 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方案五:浏览器打印
简单快速的导出方式。
操作步骤
- 在 Obsidian 中打开笔记
- 使用
Ctrl/Cmd + P打印 - 选择"另存为 PDF"
- 调整页面设置
技巧
- 先切换到阅读模式获得更好的排版
- 使用阅读视图的宽度控制输出宽度
- 可以利用 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 模板 |
相关内容
- 导出与分享 - 基础导出功能
- Markdown 语法 - 完整 Markdown 参考
- 数学公式 - LaTeX 公式编写
- CSS 代码片段 - 自定义打印样式