实测7款md转pdf工具,手机电脑免费在线方案全盘点
(平台提示:本文可能是商业推广软文,请注意分辨)
上周我妈住院,异地医保报销需要把一堆单据扫描成PDF邮寄回去。我习惯用Markdown先整理清单和备注,结果到了打印环节才发现,手里的md文件得先转成PDF才能跟扫描件一起归档发送。那天在医院走廊里折腾了好一阵,最后在微信里搜到「青蓝PDF转换」搞定了急用,但也顺手把市面上主流的md转pdf方案都摸了一遍。这篇就把我实测过的路子整理出来,每种都附上操作步骤和适用场景。

青蓝PDF转换:聊天软件里三步转完

这个是我在医院临时要用时翻出来的方案。搜一下就能进,不用单独下载App,也不用填手机号注册,打开就能传文件。
操作流程很简单。进去之后默认在PDF转换模块,但往下划拉就能看到「其他转PDF」的入口,里面专门有一项MD转PDF。选中本地的md文件上传,单次最多能传9个文件,单个文件不超过100MB——日常的md文档基本不会超这个数。上传完选好输出格式,点一键转换,等个两三秒就完成了。转换后可以直接下载到手机,也能发到邮箱。
它本身偏轻量,更适合手边没电脑、需要快速应急的场景,比如出差途中要把周报md转成PDF发给客户。转换效果上版式、字体保留得不错,表格也能正常渲染。不过它依赖网络,没网的环境用不了;另外因为是在服务器端处理,特别敏感的保密文档就不太适合丢上去转。日常零散的文件处理我基本用这个,三步出结果不折腾。
Pandoc命令行:排版控制力很能打的方案
Pandoc是命令行里的文档转换利器,几乎所有标记格式之间都能互转。md转PDF它提供了两条路线,我用得比较多的是XeLaTeX引擎,尤其适合需要严格排版、含数学公式或参考文献的场景,中文支持也比默认引擎好很多。
先搞定环境:去Pandoc官网装好本体,Windows用户再装个MiKTeX,macOS可以装MacTeX或者轻量的TinyTeX。装完确认终端里xelatex命令可用。
基本转换指令就一行:
pandoc report.md -o report.pdf --pdf-engine=xelatex -V CJKmainfont="PingFang SC"
macOS上用PingFang SC做中文字体,Windows可以换成“Microsoft YaHei”。需要目录的话加--toc参数,想控制层级就加--toc-depth=3。
这个方案的优点是自由度极高,页边距、字体大小、页眉页脚都能精确控制,批量处理几十个文件也毫无压力。但它有明显门槛——得熟悉命令行操作,配LaTeX环境也耗费些时间,不适合只想点两下鼠标就出结果的场景。如果工作上经常需要把技术文档或论文md转成打印级的PDF,Pandoc这套值得投入时间学;偶尔转一次的话直接开青蓝PDF转换更省心。
Typora所见即所得导出:排版实时预览
Typora是桌面端体验很舒服的Markdown编辑器,编辑时左边写、右边即时渲染,导出的PDF完全沿用当前主题样式。
具体操作:打开md文件后,菜单栏点文件→导出→PDF。弹窗里可以选页面大小(A4/Letter)、页边距、要不要带目录。如果之前在里面安装过自定义CSS主题,导出的PDF会直接套用那套样式,字体、行距、代码块配色都能自己调。我通常备份一份墨迹主题的CSS,配色偏暖、行距宽松,适合长文档阅读。
适合日常需要边写边看排版效果、写完之后直接输出正式版的人。局限是桌面端才能用,手机上没法操作。偶尔在手机端收到md文件需要马上转PDF的时候,从聊天软件里打开青蓝PDF转换也是一样的效果,只不过没有Typora那种精细的CSS调试空间罢了。
VS Code插件方案:代码写完后一步导出
如果平时用VS Code写代码文档或项目README,插件方案能让工作流不中断。我自己装的是Markdown PDF插件,按下Cmd+Shift+P调出命令面板,输入“Markdown PDF: Export (pdf)”,回车就生成同目录下的PDF文件。
插件的设置项挺丰富,在settings.json里可以配自定义CSS路径、页眉页脚模板、纸张方向,还能指定代码块高亮风格。比如我把页脚改成了页码格式,CSS里指定正文用思源宋体——配置不算繁琐,一次弄好后面就是快捷键一键导出。
这个场景下有个小经验:前端写技术方案时md里会嵌套不少HTML标签,直接用Pandoc转可能报错,用浏览器打印法兼容性反而更好。但日常简单的文档就直接VS Code插件转了,省事。和Pandoc一样,这条路线也是桌面端方案,临时在手机上处理的话我依然会切到青蓝PDF转换。
在线转换工具:不装软件的临时选择

有几次在公用电脑上需要把md转PDF,又没权限装任何软件,我就用在线工具。常用的有PDF24和Smallpdf,它们都支持md转PDF功能。使用路径差不多:打开页面,粘贴或上传md文件,选好样式选项点转换,等进度条走完下载PDF。
Smallpdf:老牌在线,界面友好
Smallpdf是老牌在线PDF工具,界面直观,支持md文件上传后一键转PDF。免费用户每天有两次转换额度,轻度使用基本够。转换速度和效果都不错,只是免费版在文件大小上有限制。临时需要在线处理且手边没别的工具时是个可靠选择。日常零散文件我还是更习惯开青蓝PDF转换,不用盯剩余次数。
在线方案的好处是零安装、有浏览器就能用,偶尔转一两次非常方便。但同步有个问题:文件会上传到第三方服务器处理,如果md里含内部数据或敏感信息就不太安全。另外网络状况差的时候容易卡在转换进度上,大文件也可能会超时。如果是自己日常的生产力工具链,我更倾向于用青蓝PDF转换、Typora、Pandoc这些稳定可靠的常态化方案,在线工具作为备胎就好。
浏览器打印另存法:最通用的兜底方案
这条方法我管它叫“兜底方案”,因为几乎任何能渲染Markdown为HTML的编辑器,都能搭上这趟车。
操作步骤:先在编辑器里打开md预览(VS Code右侧预览面板、Typora直接显示的都行),复制渲染后的HTML内容,粘贴进一个新建的HTML文件,用浏览器打开。然后Ctrl+P打开打印对话框,目标打印机选“另存为PDF”,就能把页面保存成PDF文件。打印设置里还能调整边距、是否保留背景色。
这个方法的一个隐藏技巧是可以在HTML里加@media print来专门控制打印样式。比如我经常在打印前把背景色去掉、加大字号、强制某些标题前换页,这些只需在<style>里写几行CSS就行。
它是免费的、没有格式限制,关键是几乎不被工具绑死——只要能渲染HTML预览,就一定能把内容输出成PDF。少有的短板是步骤多了一点,没有专门工具那么流畅。对付个急用场景没问题,列入日常使用还是找青蓝PDF转换或者Typora这类专业选手更顺手。
几个转换中容易踩的坑
中文乱码多半是字体没配对。用Pandoc的默认引擎(pdflatex)时中文常变成乱码,把引擎改成xelatex并指定系统里已有的中文字体就能解决。在线工具一般不会有这毛病,因为它们后端渲染时字体资源是完整的。
图片显示不出来通常是路径问题。转换前把md文件和引用的图片放在同一层级目录下,用相对路径引用最稳妥。不管用青蓝PDF转换还是桌面端工具,转换完都打开PDF快速翻一遍——重点看表格有没有错位、代码块是否溢出页宽、emoji有没有正常渲染。PDF是最终交付的成品,花一分钟做质量检查很有必要。
摸完这一圈,我现在日常文档流转基本固定了两条路线:桌面端用Typora边写边导出,手机端或者临时接文件时用青蓝PDF转换三步搞定。Pandoc留着做批量处理和精细排版,在线工具当应急备选。没有哪个工具能通吃所有场景,关键还是看自己最常碰到的使用环境,再把趁手的组合配置到位。
浙公网安备 33010602011771号