Markdown写法简单明快,我十分喜欢,以至于我最近都想使用Markdown快速的进行测试说明书的写作,但是考虑到这文档是要进行交接的,一个.md的文件在内部传输还是有不便,于是就想到了能不能把Markdown转为PDF文件作为通用文件。

然后搜索后看到了这样的一篇文章如何把 Markdown 文件转化为 PDF,文中提到了很多方法,有使用.md->.html->.pdf的,也有.md->.word->.pdf,也有.md->.tex->.pdf的。最终考虑到之前曾经使用LaTex进行过文章写作,并且PC中还有着LaTex环境,决定使用Pandoc实现Markdown转PDF

Pandoc介绍

Pandoc是一个用haskell编写的开源文本转换工具,小巧迅速且支持格式广泛,堪称文本转换应用的瑞士军刀。支持很多种输入输出,有关Pandoc可以在其官网进行详细了解。下载页面可以点此进入,在其中选择合适的版本即可(GitHub下载不多赘述)。

Markdown转PDF

全英文文档转换

在需要转换的文件路径下进行Shift+鼠标右键选择此处进入命令行,键入

1
pandoc input.md -o output.pdf

即可完成最简单的PDF文档。

中英文文档转换

在编写时,由于我们主体还是中文,那么若文档中存在中文字符,那么转换就会出问题。为了使的其支持中文,我们需要使用xelatex编译器(有关xelatex,还请大家自行搜索),下面直接放干货,可以一步操作到位的命令如下。

1
pandoc -N -s --toc --smart --latex-engine=xelatex -V CJKmainfont='黑体' -V mainfont='Times New Roman' -V geometry:margin=1in input.md -o output.pdf

大家可以自行编辑一些.md文档然后使用着条命令进行转换尝试。另外,Markdone转PDF的操作,也可以几个.md文件整合成一个PDF文件,其命令如下。

1
pandoc -N -s --toc --smart --latex-engine=xelatex -V CJKmainfont='黑体' -V mainfont='Times New Roman' -V geometry:margin=1in in1.md in2.md ... -o output.pdf

语法介绍

有兴趣的童鞋可以查看官方的HELP文档进行详细的了解,传送门:Pandoc Demos & README

若是想重点了解下上文中所用到的一些参数及其意义可以看下面的一些说明。

1
2
--latex-engine=xelatex
# 因为文档中有中文字符,使用XeLaTex引擎(必选项)
1
2
3
4
-N # 根据标题自动分配标号(可选项)
# H1标题#Title# --> 1/2/3/4/...
# H2标题##Title## --> 1.1/1.2/1.3/...
# H3标题###Title### --> 1.1.1/1.1.2/1.1.3/...
1
-toc # 给PDF文件加上书签功能

有关这些命令的详细说明都可在上面提到的README中进行查阅。比如命令-V,在上面操作中的作用就是设定中英文的显示字体,比如中文设定为黑体,英文设定为Times New Roman,你也可以自行设定合适的字体。

1
2
3
4
5
6
7
8
9
 
`-V` *KEY*[`=`*VAL*], `--variable=`*KEY*[`:`*VAL*]
 
: Set the template variable *KEY* to the value *VAL* when rendering the
document in standalone mode. This is generally only useful when the
`--template` option is used to specify a custom template, since
pandoc automatically sets the variables used in the default
templates. If no *VAL* is specified, the key will be given the
value `true`.

转换效果

本文也对一些.md文件进行了PDF文件转换,并附一些效果图于后供大家参考。其中使用的input.md文件使用了Cmd Markdown简明说明书的源文件,其网页渲染效果点此可见,可以与生成的PDF进行一个对比,看PDF生成的效果如何。本文使用的input.md也放出下载链接

 
 

[原创]使用Pandoc实现Markdown文件转PDF文件的更多相关文章

  1. 利用 Pandoc 将 Markdown 生成 Word/PDF 文件

    Pandoc 是一个格式转化工具,可以用于各(luan)种(qi)各(ba)样(zao)的文件转换, 反正我是认不全官网上的那个图(傲娇脸), 之前一直使用它将 Markdown 文件转换成 Html ...

  2. libreoffice转换文件为pdf文件乱码问题解决办法

    最近系统需要一个office文件预览功能 解决方案为使用libreoffice将office文件转换为pdf文件,然后使用swftools将pdf文件转换为swf文件 最后在前台使用flexpaper ...

  3. 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

    1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即 ...

  4. Java转换Word文件到PDF文件

    使用Docx4j将Word文件转换为PDF文件: public static void convertDocxToPDF(String docxFilePath, String pdfPath) th ...

  5. openoffice启动服务并将office文件转换为pdf文件

    1.首先下载最新版的openoffice工具,安装完成之后安装服务,, win+r打开命令提示符 输入cmd,cd C:\Program Files (x86)\OpenOffice 4\progra ...

  6. C#仪器数据文件解析-PDF文件

    不少仪器工作站输出的数据报告文件为PDF格式,PDF格式用于排版打印,但不易于数据解析,因此解析PDF数据需要首先读取到PDF文件中的文本内容,然后根据内容规则解析有意义的数据信息. C#解析PDF文 ...

  7. Java仪器数据文件解析-PDF文件

    一.概述 使用pdfbox可生成Pdf文件,同样可以解析PDF文本内容. pdfbox链接:https://pdfbox.apache.org/ 二.PDF文本内容解析 File file = new ...

  8. 如何将知网下载的caj文件转换为pdf文件

    一.问题描述: 最近在知网搜索论文的时候,经常遇到有的论文没有pdf文件的情况,但不得不吐槽我觉得知网做的阅读器确实是有点烂.所以想将caj文件转化为pdf文件,找到了一个比较好的方法,所以希望记录一 ...

  9. 将Rmarkdown文件转为pdf文件

    knitr包只能够将R markdown文件转为html格式,若想要将其转化为pdf格式,还要安装另一个包 # Install and load package install.packages(&q ...

随机推荐

  1. 论文笔记之:Co-saliency Detection via A Self-paced Multiple-instance Learning Framework

    Co-saliency Detection via A Self-paced Multiple-instance Learning Framework  T-PAMI  2016  摘要:Co-sal ...

  2. Whats meaning of “EXPORT_SYMBOL” in Linux kernel code?

    EXPORT_SYMBOL的作用是什么? EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一 ...

  3. UML的类图、时序图表示方法以及惯例

    <UML类图图示样例>说明:http://wenku.baidu.com/link?url=DEaRFyVIAH4kZ7TolplfFhFhmAk3gFaNSOH7XPzfTnCWY4CB ...

  4. python---dict字典

    Python 字典 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式 ...

  5. SQL Server 2012将数据库备份到网络中的共享文件夹

    把计算机computer1 中的数据库备份到计算机computer2(IP:192.168.0.130)中的一个共享文件夹下 在computer2中的F盘下建一个共享文件夹叫DBBackupShare ...

  6. 虚拟机Ubuntu16,caffe环境搭建

    虚拟机下的Ubuntu16.04+caffe+onlycup 官网的step很重要,要跟着官网,的步骤来:http://caffe.berkeleyvision.org/installation.ht ...

  7. Centos6.4 用rpm方式安装MySql5.6

    1.查看系统是否安装了MySQL     使用命令:     #rpm -qa | grep mysql    2.卸载已安装的MySQL      卸载mysql命令如下:       #rpm - ...

  8. RabbitMQ介绍6 - 其它

    深入话题 Exchange实现路由的方法 http://www.rabbitmq.com/blog/2010/09/14/very-fast-and-scalable-topic-routing-pa ...

  9. 把自己主要在做的几个工程都传到了GitHub上

    GitHub链接 https://github.com/MichaelSuen-thePointer 里面有4个项目,一个是我的C大程大作业,一个3600+行的字典程序,已经弃坑不再更新 还有一个叫w ...

  10. edittext_解释

    ============ 2   android判断EditText输入的数字.中文还是字母方法   String txt = edInput.getText().toString(); Patter ...