Windows系统中将markdown文件批量转化为PDF

news/2024/11/6 11:27:59/

需要将一个文件夹下的多个md文件转化为PDF

下载安装pandoc

官网下载地址:Pandoc ,下载位置如下图。
在这里插入图片描述
下载后按照默认文件路径安装完成
使用everything软件查找pandoc.exe文件路径,如下图:
在这里插入图片描述
安装完成之后就可以在cmd窗口或Windows power shell中使用pandoc指令了,例如:

pandoc test.md -o test.pdf #将test.md转化为test.pdf

通过bat脚本进行批量转化

编写bat脚本

bat脚本示例如下:

@echo off
setlocal enabledelayedexpansionset "PANDOC_PATH=path\to\pandoc.exe"  //将"path\to\pandoc.exe"替换为你的Pandoc可执行文件的路径
set "INPUT_FOLDER=path\to\input\folder"  //将"path\to\input\folder"替换为你的Markdown文件所在的文件夹路径
set "OUTPUT_FOLDER=path\to\output\folder"  //将"path\to\output\folder"替换为你希望保存PDF文件的文件夹路径for %%F in ("%INPUT_FOLDER%\*.md") do (set "INPUT_FILE=%%~F"set "OUTPUT_FILE=!OUTPUT_FOLDER!\%%~nF.pdf""%PANDOC_PATH%" "!INPUT_FILE!" -o "!OUTPUT_FILE!"
)echo Conversion completed.
pause

双击执行bat文件即可

报错

双击执行上面的bat文件会报错,报错信息如下:

Error producing PDF. ! Package inputenc Error: Unicode character 绗?
pandoc.exe: : hPutChar: permission denied (Permission denied)

解决

报错原因是markdown文件中有中文,为了支持中文,我们需要生成一个自己的tex模板。

将默认模板输出成template.tex。

pandoc -D latex > template.tex # -D: print-default-template

使用vscode打开生成的template.tex,在400多行的document之前加一行usepackage
在这里插入图片描述
ctex包能够提供中文支持。

然后,打开的template.tex在vscode右下角会显示其编码格式,点击,选择Save With Encoding,选择UTF-8。不更换编码格式的话会导致pandoc不能正确读取。

最后需要在pandoc中指定模板和中文友好的引擎--template=template.tex --pdf-engine=xelatex

最终bat版本

@echo off
setlocal enabledelayedexpansionset "PANDOC_PATH=path\to\pandoc.exe"  //将"path\to\pandoc.exe"替换为你的Pandoc可执行文件的路径
set "INPUT_FOLDER=path\to\input\folder"  //将"path\to\input\folder"替换为你的Markdown文件所在的文件夹路径
set "OUTPUT_FOLDER=path\to\output\folder"  //将"path\to\output\folder"替换为你希望保存PDF文件的文件夹路径for %%F in ("%INPUT_FOLDER%\*.md") do (set "INPUT_FILE=%%~F"set "OUTPUT_FILE=!OUTPUT_FOLDER!\%%~nF.pdf""%PANDOC_PATH%" "!INPUT_FILE!" -o "!OUTPUT_FILE!" --template=template.tex --pdf-engine=xelatex
)echo Conversion completed.
pause

http://www.ppmy.cn/news/777209.html

相关文章

交换机与路由器技术:静态NAT、动态NAT、PAT和端口镜像

网络地址转换NAT 1、静态转换 2、动态转换 3、端口多路复用PAT 4、端口映射(服务器映射) 目录 一、NAT基本概念1、目的2、出现背景3、转换方式 二、静态NAT三、动态NAT三、PAT总结 五、端口镜像1、基本概念 一、NAT基本概念 在ipv4的网络环境中,由于网络分为私网和…

NAT / NAPT

目录 一、前言 二、网络地址转换(NAT) 2.1 NAT如何解决IP冲突 2.2 SNAT / DNAT 2.3 SNAT工作原理 2.3.1 案例1(NAT) 2.3.2 案例2(NAPT) 2.4 DNAT 三、总结 一、前言 本人在学习Bridge/Router的过程中,发现在…

思科路由器NAT配置案例(static tcp)

NAT(Network Address Translation),是指网络地址转换,1994年提出的。 当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信&…

NAT 网络地址转换技术(二):在路由器上配置NAT技术

文章目录 实验要求配置步骤一步骤二:静态NAT配置步骤三:动态NAT配置步骤三:配置NAPT步骤四:配置Easy IP AR1所有配置 实验要求 PC1到PC5,使用静态NAT,将192.168.1.1映射成10.1.1.2PC2到PC5,使用动态NAT&…

路由器使用与NAT

总结一下昨天晚上睡前学到的 首先是校园网问题,关于路由器的使用: 一个路由器只有一个外网ip 进lan口,出wan口进主机,开启dhcp:路由器的路由功能,此网所有主机公用一个外网ip,内网ip由路由器…

华为路由器配置网络地址转换NAT/静态NAT/动态NAT/Easy-ip/NAPT代理上网

华为路由器配置NAT 配置R1接口和默认路由(基础配置) [R1]interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1]ip address 10.1.1.2 24 [R1]interface GigabitEthernet 0/0/2 [R1-GigabitEthernet0/0/2]ip address 192.168.11.254 24 添加默认…

思科路由器配置NAT地址转换

静态NAT转换 采用如图所示的结构,每个端口配置如下的ip 首先得理解这个结构,r4的s2/0端口和r6和pc8共同组成外网 r4的f0/0和交换机s2以及pc6 pc7组成内网, 因此配完ip后,还得保证r4能ping通pc8 同样pc8也能ping通r4的s2/0 因此需…

路由器NAT典型配置

1.组网需求 内部网络中IP地址为10.110.10.0/24的用户可以访问Internet,其它网段的用户则不能访问Internet。 外部的PC可以访问内部的服务器。 公司具有202.38.160.100/24至202.38.160.105/24六个合法的IP地址。选用202.38.160.100作为公司对外的IP地址,W…