Pandoc 是一个格式转化工具,可以用于各(luan)种(qi)各(ba)样(zao)的文件转换,

反正我是认不全官网上的那个图(傲娇脸),

之前一直使用它将 Markdown 文件转换成 Html 文件,最近发现原来还可以生成 Word/PDF文件。

Word 文件生成

将 Markdown 文件生成 Word 文件很简单,和 html 文件一样

> pandoc test.md -o test.docx

同时在生成时也可以使用 -c 参数为文档指定样式文件( css 文件)

> pandoc test.md -o test.docx -c style.css

这里的样式与生成 html 时的样式一直,

针对 markdown 文档各个部分生成的 html 标签来应用,

如:在样式文档中定义的 h1 { font-size: 24px; }

就会应用在以 # 开头的一级标题行。

生成 pdf

原本以为生成 pdf 与 docx 一样省事,然鹅... 报错打脸:

> pandoc test.md -o test.pdf
pandoc: pdflatex not found. pdflatex is needed for pdf output.

原来是因为 pandoc 在生成 pdf 文件的时候默认使用 pdflatex 引擎,

我的电脑上没有安装 Tex,所以才报错了,故下载之

(小生使用的是 MiKTex

它会在缺少组件的时候自动下载相关包。)

接着继续执行命令:

> pandoc test.md -o test.pdf
! Package inputenc Error: Unicode char 鍔?(U+529E)
(inputenc) not set up for use with LaTeX. See the inputenc package documentation for explanation.
Type H <return> for immediate help.
... l.53 \section{鍔炰簨澶勬竻鍗曟€濆瘑杈緘 Try running pandoc with --latex-engine=xelatex.
pandoc.exe: Error producing PDF

哎呀呀,又报错了,不过这次比较好,给了提示,

让我们试一试 --latex-engine=xelatex 参数,

pandoc 一般转换 pdf 使用的默认引擎是 pdflatex,

估计是不能识别 Unicode 字符串,导致无法支持中文,

所以这里建议我们换用 xelatex 引擎,执行之:

> pandoc test.md -o test.pdf --latex-engine=xelatex

文件生成,没有报错,堪称完美,以上... 哎,等一下,

打开文档一看,我的汉字呢... 汉字全部空白(pandoc 饿了?)

google 之发现,原来是没有指定字体的问题,加上参数 -v

> pandoc test.md -o test.pdf --latex-engine=xelatex -v mainfont="Microsoft YaHei"

以上,完美~~~

参考链接:

https://segmentfault.com/a/1190000004887280

http://stackoverflow.com/questions/18178084/pandoc-and-foreign-characters

利用 Pandoc 将 Markdown 生成 Word/PDF 文件的更多相关文章

  1. 利用Pandoc将markdown文件转化为pdf

    利用Pandoc将markdown文件转化为pdf 准备工作 安装pandoc 安装MiKTeX 将markdown文件转换为pdf 准备工作 安装pandoc Windows下安装pandoc很容易 ...

  2. php+tcpdf如何把生成的pdf文件保存在服务端

    tcpdf组件目前应用得非常广泛,但是对于如何把生成的pdf文件自动保存在服务端却很少有人提及.让我们先来看看标准输出代码:   //服务器存档模式 $pdf->Output('output.p ...

  3. java使用freemark生成word/pdf

    目录 一. 背景 二.实现的技术选型以及遇到的坑 三.最终的效果 2.1 .doc word效果展示 2.1 .docx word效果展示 2.2 docx word转pdf效果展示 三.准备工作及代 ...

  4. winform 替换word文档中的字段(包含图片添加),生成导出PDF文件(也可是word文件)

    1.先打开你需要替换的word文档,在想要后续更换字段值的地方添加“书签”. 2.将模板文档存放在 程序的Debug文件下. 3.生成文件的按钮点击事件 代码: string templatePath ...

  5. Pandoc将markdown转换为word

    markdown转换为word的指令 直接将markdown转换为word pandoc -f markdown -t docx ./test.md -o test.docx 关于markdown转为 ...

  6. 解决部分浏览器不能显示itext生成的PDF文件文本域内容问题

    利用Itext可以实现pdf的高效动态生成,但在实践过程中遇到了一个问题: 即itext利用map中的值设置到pdf模板上建立的文本域中时:能成功生成,但是在部分浏览器上(360,QQ,等浏览器)无法 ...

  7. XPath2Doc,一个半自动采集网页生成Word Docx文件的工具,带企查查和天眼查模板

    原始出处:https://www.cnblogs.com/Charltsing/p/XPath2Doc.html 很多人需要从网站采集一些数据填写Word模板,手工操作费时费力还容易出错,所以我给朋友 ...

  8. solr6.6 solrJ索引富文本(word/pdf)文件

    1.文件配置 在core下面新建lib文件夹,存放相关的jar包,如图所示: 修改solrconfig.xml <lib dir="${solr.install.dir:../../. ...

  9. 利用html模板生成Word文件(服务器端不需要安装Word)

    利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端 ...

随机推荐

  1. 初识Tarjan

    Tarjan,一个十分有用的东西,可以求有向图的强连通分量,复杂度达到O(V+E). Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的节 ...

  2. 北京Uber优步司机奖励政策(3月20日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. HDU 4418 Time travel

    Time travel http://acm.hdu.edu.cn/showproblem.php?pid=4418 分析: 因为走到最后在折返,可以将区间复制一份,就变成了只往右走,01234321 ...

  4. autocomplete.jquery 点击或进入默认显示所有结果

    注意使用的是autocomplete.jquery,官网地址是:https://github.com/devbridge/jQuery-Autocomplete.而不是JqueryUI的autocom ...

  5. 2019年猪年海报PSD模板-第一部分

    14套精美猪年海报,免费猪年海报,下载地址:百度网盘,https://pan.baidu.com/s/1i7bIzPRTX0OMbHFWnqURWQ                        

  6. 「题目代码」P1060~P1065(Java)

    P1060 谭浩强C语言(第三版)习题7.5 注意行末空格. import java.util.*; import java.io.*; import java.math.*; import java ...

  7. 「日常训练」Maximum Multiple(HDU-6298)

    题意与分析 一开始以为是一条高深的数学题,跳过去了,后来查其他题目的代码的时候无意看到,一看emmmmmm 稍微思考一下就有了.\(1=\frac{1}{3}+\frac{1}{3}+\frac{1} ...

  8. Objective-C 第一个小程序

    示例一 (类似C) //1.代码编写 //跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中.比如这里写到一个main.m文件中(文件名可以是中文) #include <s ...

  9. Python 集合内置函数大全(非常全!)

    Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员   s ...

  10. Siki_Unity_2-1_API常用方法和类详细讲解(下)

    Unity 2-1 API常用方法和类详细讲解(下) 任务101&102:射线检测 射线origin + direction:射线检测:射线是否碰撞到物体 (物体需要有碰撞器),碰撞物体的信息 ...