在macOS中使用Pandoc转HTML为PDF报错:文件不存在,如何解决?
问题分析
报错核心原因是文件路径错误:你已经通过cd api进入了api目录,当前工作目录就是api,但你执行的Pandoc命令中使用了doc/api/'*.html'路径——这个路径是从上级目录(或根目录)出发的相对路径,在当前api目录下不存在对应的层级,导致Pandoc无法找到目标文件。另外,单引号包裹*.html会阻止shell解析通配符,Pandoc会把*.html当成一个具体的文件名,而非匹配所有HTML文件。
解决方法
根据你的实际需求选择以下方案:
方案1:转换当前api目录下的所有HTML文件
直接使用当前目录的通配符,不要给*.html加引号:
pandoc -s *.html -o output.pdf
方案2:若HTML文件实际在doc/api/目录下
先退出当前api目录回到上级目录,再执行命令:
cd .. pandoc -s doc/api/*.html -o output.pdf
方案3:转换指定的HTML文件
如果不需要转换所有HTML文件,直接列出目标文件名即可:
pandoc -s __404error.html index.html search.html -o output.pdf
关键注意点
- macOS默认使用zsh或bash,通配符
*不要用单引号包裹,否则shell不会解析它,Pandoc会将*.html视为单个文件名而非匹配规则。 - 执行命令前,可通过
pwd命令确认当前工作目录,避免路径混淆。
内容的提问来源于stack exchange,提问作者spark
相关产品推荐
相关产品推荐

