几年前,我开始使用Emacs Org-mode配合reveal.js来生成培训用的幻灯片,结果相当令人满意。坦白说,是Carsten带我入坑的。起初我花了一些时间调整设置,直到完全符合心意。之后,只需在命令行输入make,就能从.org文件自动生成HTML文件——这全靠我自己写的Makefile。生成的*.html文件直接通过浏览器打开演示即可。
但到了打印讲义或发手稿时,我需要PDF格式。过去尝试过一些转换工具,效果都不理想——要么生成效果差强人意,要么无法像手动操作那样完美。我的手动做法是:在浏览器中打开幻灯片URL,加上?print-pdf参数,然后通过打印功能另存为PDF。虽然结果靠谱,但每次都要重复这套手动流程,实在麻烦。
我一直想把这个过程自动化。几天前,我重新想起了decktape这个工具。坦白讲,我对安装NPM包有些抵触——它和Maven、Rust一样,动辄要下载半个互联网。所以我先从Docker镜像入手,按照项目文档部署。然而,生成的效果让我不太满意:字体看起来很奇怪,整体印象与预期相差甚远。说“奇怪”可能不太准确,但就是感觉不对劲。
后来我恍然大悟:Docker镜像里运行的是Linux版Chrome,而我平时在Mac上用惯了自带的字体和渲染效果。于是我在本地安装decktape(通过NPM),生成的PDF果然与手动操作一模一样,完美!
为了实现全自动流程,我写了一个叫runoff.sh的小脚本(没错,名字是故意起的:-)。它的工作流程如下:
这个脚本基本满足了我的需求:一键生成与手动操作效果一致的PDF。但还有两个小遗憾:
pdf2ps | psnup组合可以实现,但输出质量不如原版,而且URL链接会损坏。尽管如此,这套自动化流程已经大大节省了时间。对于经常做培训、需要PDF讲义的Mac用户来说,本地安装decktape配合简单脚本,绝对是个值得尝试的方案。
关注微信号:智享开源 ,及时了解更新信息。
原文链接:https://jpmens.net/2026/07/11/rediscovering-reveal-js-to-pdf/
你必须 登录 才能发表评论.
| 微信捐赠 | 支付宝捐赠 |
|---|---|
![]() |
![]() |
扫码关注公众号:智享开源

还没有任何评论,你来说两句吧!