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 报表之JFreeChart(第一讲)

    1.利用 JFreeChart 创建垂直柱状报表 package com.wcy.chart.bar; import javax.servlet.http.HttpSession; import or ...

  2. selenium加载时间过长

    为了获取网站js渲染后的html,需要利用selenium加载网站,但是会出现加载时间过长的现象,因此可以限制其加载时间以及强制关掉加载: # !/usr/bin/python3.4 # -*- co ...

  3. mybatis 使用记录

    首先,贴一个好文.把mybatis中的<if></if>的条件扒到源码分析了一遍.PS:目前还看不懂... http://cheng-xinwei.iteye.com/blog ...

  4. Spring学习 Ioc篇(三)

    1.在注解注入方式中,首先要在xml中引入如下的红线的命名空间: <?xml version="1.0" encoding="UTF-8" ?> & ...

  5. Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中

    Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxC ...

  6. sql server 2008 r2 报错

    无法启动服务,要求检查数据库和windows日志 查看发现报错 The SQL Server failed to initialize VIA support library [QLVipl.dll] ...

  7. 根据 MySQL 状态优化 ---- 3. key_buffer_size

    查看 MySQL 服务器运行的各种状态值: mysql> show global status: 3. key_buffer_size key_buffer_size 是设置 MyISAM 表索 ...

  8. PaintCode调研

    1.   背景 PaintCode是一款面向iOS和Mac应用开发者及设计师的矢量图形可视化开发工具.它可以让设计师把设计好的psd文件直接导入该工具,然后生成用Quartz 2D 产生的object ...

  9. 转:LoadRunner负载测试之Windows常见性能计数器,分析服务器性能瓶颈

    发布于2012-10-8,来源:博客园 监测对象 System(系统) l %Total Processor Time 系统中所有处理器都处于繁忙状态的时间百分比,对于多处理器系统来说,该值可以反映所 ...

  10. The listener supports no services解决一例

    The listener supports no services解决一例   Listener动态监听静态监听注册实例 今天做Advacned Replication实验的时候碰到一个问题,启动目标 ...