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. java——XML与java对象装换

    -------------------------------Dog类--------------- publicclass Dog implements Serializable{ privates ...

  2. windows github 命令行使用

    1.下载git客户端工具,以下2个网站一样的https://git-for-windows.github.io/https://git-scm.com/download/win/ 2.初始化ssh-k ...

  3. WCF实现客户端自动更新-GenerateFileList

    GenerateFileList using System; using System.Collections.Generic; using System.Diagnostics; using Sys ...

  4. Zookeeper安装指南

    第一步:修改conf目录下面的 zoo_sample.cfg修改为zoo.cfg tickTime=2000 # The number of ticks that the initial # sync ...

  5. knockout 学习实例7 foreach

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. 02 Linux 下安装JDK并测试开发“Hello World!”

    测试环境 主机系统:Win7 64位 虚拟机:VMware® Workstation 11.1.0 虚拟机系统:CentOS 6.5 64位   Kernel 2.6.32-431.e16.x86_6 ...

  7. java maven诡异的错误no class found

    从服务器下载一个java web项目,启动老提示no class found,查看maven依赖库,相关的jar包都已经引入.同样一个项目,在别的机器都可以运行,唯独在我本机运行出错. 为了排错,将其 ...

  8. winform画图闪烁问题

    问题:在winform程序的onpaint方法中画图, 连续画, 如鼠标移动时就要不断画图, 会闪烁. 解决方法:将要画图的部分放到一个自定义控件中, 自定义控件的onpaint方法里面画图, 然后再 ...

  9. 剑指Offer:面试题19——二叉树的镜像(java实现)

    问题描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树结点定义为: public class TreeNode { int val = 0; TreeNode left = null; Tr ...

  10. LoadRunner 多场景批处理

    @echo off echo *********************************echo ****多场景测试*************echo ******************** ...