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

news2024/12/25 12:29:33

需要将一个文件夹下的多个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 enabledelayedexpansion

set "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 enabledelayedexpansion

set "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.coloradmin.cn/o/727696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cyclo(L-Asp-L-Gly),52661-97-9,定制含D型与L型氨基酸

(文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu) 试剂基团反应特点(Reagent group reaction characteristics): Cyclo(L-Asp-L-Gly),52661-97-9,(活性药物…

荧光染料92557-81-8,FAM NHS ester,6-isomer,用于标记核苷酸的荧光试剂

6-羧基荧光素琥珀酰亚胺酯 6-FAM, 用于标记核苷酸的荧光试剂,6-羧基荧光素琥珀酰亚胺酯是一种化学物质。荧光标记染料在生物分析中发挥越来越重要的作用,特别是6-羧基荧光素已经成为检测蛋白质,DNA序列的国际通用的荧光染料。 6-F…

变压器绝缘电阻测试试验

试验目的 电力变压器是发电厂、 变电站和用电部门最主要的电力设备之一, 是输变电能的电器。 测量绕组绝缘电阻、 吸收比和极化指数, 能有效地检查出变压器绝缘整体受潮, 部件表面受潮脏污, 以及贯穿性的集中行缺陷, …

Revit柱的绘制:陶立克柱绘制方法和生成柱

​  一、Revit陶立克柱的绘制方法 BIM等级考试一级第十期第四题陶立克柱该如何绘制呢?接下来我演示给大家。 陶立克柱看似很复杂,其实很简单,只需要先绘制好柱身,会用到阵列工具的使用再绘制柱子上部或下部分,最后采用镜像工具…

spring系列所有漏洞vulhub复现CVE-2022-22978、CVE-2022-22963、CVE-2022-22965、CVE-2018-1273

文章目录 CVE-2022-22978 Spring-security 认证绕过漏洞漏洞描述:复现: CVE-2022-22963漏洞描述:复现: 提提神Spring框架Data Binding与JDK 9导致的远程代码执行漏洞(CVE-2022-22965)漏洞描述:复现: Spring Data Commo…

智慧水务信息化建设——看“厂、站、网”一体化综合监管

平台概述 智慧水务信息化平台是以物联感知技术、大数据、智能控制、云计算、人工智能、数字孪生、AI算法、虚拟现实技术为核心,以监测仪表、通讯网络、数据库系统、数据中台、模型软件、前台展示、智慧运维等产品体系为支撑,以城市水资源、水生态、水环…

Intellij IDEA突然无法启动问题

遇到的情况:Intellij IDEA 双击或者鼠标右键右键单击都无法启动,打开任务管理器也没有Intellij IDEA线程启动。 解决方法: 第一步:以管理员身份打开命令提示符,输入命令(“ netsh winsock reset ”),关闭…

机器学习15:神经网络-Neural Networks

神经网络是特征交叉的更复杂版本。本质上,神经网络会学习适当的特征组合。本文主要介绍神经网络的结构、隐藏层、激活函数等内容。 目录 1.神经网络:结构 2.隐藏层 3.激活函数 3.1 常用激活函数 3.2 小结 4.神经网络小练习 4.1 第一个神经网络 …

异步请求(Ajax,axios,json)

同步/异步请求 表单(前端)向后端发送请求,属于同步请求 同步: 发一个请求, 给一个回应, 会用回应的内容覆盖掉浏览器中内容,这样会打断前端其他的正常操作,在现在的前端中,显得不太友好。 异步: 不同步 前端正常输入时…

腾讯云部署vitepress,高颜值文档博客

首先上官方网站。https://vitepress.dev/ 先看两张效果图。 一定要用这个官网,之前看了一个翻译版本,好像翻了一半不弄了,坑了半天时间也解决不了。目前看起来还没有官翻。 目前使用到的是腾讯云的轻量应用服务器,效果还是非常好…

【CSDN新星计划】初阶牛C/C++赛道——顺序程序设计(数据的表现形式及其运算)

目录 🍊1.数据的表现形式及其运算 🍉1.1常量和变量 🍀1.1.1常量 🍀1.1.2变量 🍀1.1.3常变量 🍀1.1.4标识符 🍉1.2数据类型 🍉1.3整型数据 🍀1.3.1整型数据的分类…

FCPX插件Stupid Raisins Split Pop 2(视频照片动画拆分效果插件)

Stupid RAIsins Split Pop是一个视频照片动画拆分效果插件,它允许您在Final Cut Pro,Motion,Premiere Pro和After Effects中使用。fcpx插件Split Screen非常适合用视频和照片创建动画分割,专为4K UHD和高清视频而设计,…

RAID5重建失败的服务器数据恢复案例

服务器数据恢复环境: 一台IBM某型号服务器,4块SAS磁盘组建了一组RAID5磁盘阵列。服务器安装的windows server操作系统,上面运行了一个Oracle单节点,数据存储为文件系统,无归档。该oracle数据库的数据量不大&#xff0c…

Python爬虫——批量下载微信公众号图片

目标: 微信公众号是现代社交媒体中最受欢迎的平台之一,每天都有数以百万计的人在浏览不同的公众号,其中大部分都包含了图片内容。如果你是一位公众号的管理员或者粉丝,你可能想要在本地保存一些感兴趣的图片。但是,微…

GIT下载安装

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

函数中的 static int 变量

#include <iostream>using namespace std;void function( ) {static int a 3 ; // 不赋值的话是 a 等于0&#xff1b;cout<<"a"<<a<<endl;aa3;cout<<"a"<<a<<endl;}int main(int argc, char** argv) {cout&l…

Apache DolphinScheduler 荣获“掘进技术引力榜”「2023 年度 ROBUST 开源项目」奖项!

经过紧张激烈的投票和严格的专家评审环节&#xff0c;“掘进技术引力榜”活动在上周的稀土掘金开发者大会上公布了「2023 年度 ROBUST 开源项目」奖项的获奖名单&#xff0c;Apache DolphinScheduler 名列其中。 Apache DolphinScheduler 代表上台领奖&#xff08;右三&#x…

蓝桥杯专题-真题版含答案-【蚂蚁感冒】【地宫取宝】【波动数列】【李白打酒】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Java开发的打包和分发机制之jar包

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于jar包的相关操作吧 一.什么是jar包 "jar包"是Java Archive的缩写&#xff0c;它是一种用于打包Java类、资源文件、库等内容的文件格式Jar包是一种特…

flutter聊天界面-聊天气泡长按弹出复制、删除按钮菜单

flutter聊天界面-聊天气泡长按弹出复制、删除按钮菜单 在之前实现了flutter聊天界面的富文本展示内容&#xff0c;这里记录一下当长按聊天气泡的时候弹出复制、删除等菜单功能 一、查看效果 当长按聊天气泡的时候弹出复制、删除等菜单&#xff0c;可新增更多按钮 二、代码实现…