乐于分享
好东西不私藏

md转pdf神器之Pandoc

md转pdf神器之Pandoc

说到qmd,底层就是md转pdf

昨天,我兴致勃勃地召唤了 ChatGPT、Grok 和 Deepseek 这些 AI 助手,希望它们能当一回技术向导,带我把一堆 Markdown 文件优雅地转换成一本排版精美的 PDF 电子书。

它们几乎异口同声地推荐了同一个工具:Pandoc。

语气笃定、步骤清晰,仿佛只要跟着操作,一切都能水到渠成。

于是我信心满满地开始动手。

然而现实很快给了我当头一棒。

转换过程不断报错,像是踏进了一个看不见底的 bug 深坑。

我把错误日志一条条丢给这些 AI “军师”,它们也确实很积极——不断提出新的解决方案。

于是我改配置、换参数、重跑命令。

一遍。

两遍。

三遍。

时间从早上一路滚到晚上 11 点。

我几乎一整天都在和 Pandoc 较劲,连饭都没顾上吃。肚子饿得咕咕直叫,像是在开一场不太和谐的音乐会。

结果呢?

问题依旧。

错误提示就像个甩不掉的小尾巴,反反复复出现,仿佛在嘲笑我的执着。

那一刻我真的有点崩溃。

心里不禁怀疑:

这些 AI 平时看起来神通广大,怎么到了关键时刻,给出的方案却像复读机一样来回兜圈子?

方案换了一个又一个。

实验做了一轮又一轮。

简单的问题,硬是被折腾成了一个世界级难题。

最后我实在受不了了,干脆把 AI 扔到一边,转而求助老朋友——Google。

在几篇中文博客里翻来找去,终于找到了一行关键命令。

简单得离谱。

简单到让人想笑。

pandoc test.md -o output.pdf --pdf-engine=xelatex -V CJKmainfont="微软雅黑" -V mainfont="Times New Roman"

问题就这样解决了。

Pandoc 本身不会直接生成 PDF,它是:

Markdown → LaTeX → PDF,所以必须指定一个 LaTeX 引擎。

常见三种:

引擎
中文支持
推荐度
说明
pdflatex
❌ 差
不推荐
基本无法直接处理中文
xelatex
✅ 好
⭐⭐⭐⭐
最常用
lualatex
✅ 好
⭐⭐⭐⭐⭐
现在越来越推荐

使用xelatex可以中文稳定转换

如果是长文档或大量图片,可以考虑:

pandoc test.md -o output.pdf --pdf-engine=lualatex -V CJKmainfont="微软雅黑" -V mainfont="Times New Roman"

它通常 速度更快、内存更好。

CJKmainfont 的作用是:

指定中文字体,在windows中,字体文件储存在C:\Windows\Fonts

可以根据实际需要的中文字体进行设置,比如宋体

pandoc test.md -o output.pdf --pdf-engine=xelatex -V CJKmainfont="SimSun" -V mainfont="Times New Roman"

那一刻的感觉,就像在迷宫里绕了十几个小时,最后发现出口其实就在身后。

我立刻把这条命令记下来,生怕哪天再遇到同样的问题,又被 AI 带着绕圈子。

后来我又顺便研究了一下:如果要把一个文件夹里的所有 Markdown 文件拼接起来,生成一本完整的 PDF,该怎么做?

在 Windows 的 PowerShell 里,我最终折腾出了这样一条“终极命令”:

pandoc (Get-ChildItem -Path . -Filter "*.md" | Sort-Object Name | ForEach-Object { '"' + $_.FullName + '"' }) `  -o output.pdf --pdf-engine=lualatex `  --toc --number-sections `  -V toc-title="目录" `  -V documentclass=report `  -V geometry=a4paper `  -V geometry=margin=1in `  -V fontsize=12pt `  -V CJKmainfont="Microsoft YaHei" `  -V mainfont="Times New Roman" `  --template=template.tex

为了让生成的 PDF 看起来更专业一点,我还配了一个简单的 template.tex 模板:

\documentclass{report}\usepackage{fancyhdr}\pagestyle{fancy}\fancyhf{}\rfoot{\thepage}\begin{document}$body$\end{document}

顺带一提,如果有人不知道怎么打开 PowerShell,其实很简单:

按 Win + R,输入 powershell,回车即可。

这一天的折腾让我突然有点感慨。

AI 确实很强,但有时候它们给出的答案,更像是一堆看起来合理的“可能路径”。真正解决问题的那条路,往往还得靠自己慢慢摸索。

所以很多时候,最可靠的组合仍然是:

自己 + 搜索引擎。

AI 可以当助手,但关键时刻,方向盘还是得握在自己手里。

最后,我使用的版本是这个

https://github.com/jgm/pandoc/releases/download/3.9/pandoc-3.9-windows-x86_64.msi

,可以自行安装

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » md转pdf神器之Pandoc

猜你喜欢

  • 暂无文章