如何把 Markdown 文件转化为 PDF?

论坛 期权论坛 study     
匿名的用户   2019-6-10 00:42   8071   5
每章几个小节每个小节一个文件,怎么生成整个的PDF呢?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心的回应  16级独孤 | 2019-6-10 00:42:45 发帖IP地址来自
之前偶尔几次md转pdf用的是最高赞chrome预览打印的方法。但是因为对字体和排版不太满意就花几天写了个web应用:www.mdtr2pdf.com。可以在线转化markdown文件。排版和字体是Github的风格,而且更主要的是支持中文UTF8编码。


欢迎大家使用━(*`*)ノ亻!
3#
热心的回应  16级独孤 | 2019-6-10 00:42:46 发帖IP地址来自
说个简单的方法,如果你的markdown(md)文件使用chrome预览,就比较简单了。
点打印,目标,选本地另存为pdf,即可。看图:





这样保存的PDF非常完美,基本上你在chrome里预览是什么格式,保存完就是什么格式。
-----------------------------------------------------------------------------------------------------------------------------------
2014-04-18更新,可能按这种操作生成的PDF文档中粗体(中文部分)可能会有问题,个人理解是与字体有关,可以按这样操作:
先选择这个,



然后选择:

这个可能与你电脑装的PDF软件会有关系,可能会有不同。
这样导出的PDF粗体是正常的。
4#
热心的回应  16级独孤 | 2019-6-10 00:42:47 发帖IP地址来自
恰好我刚刚做完这个工作,也就来凑一下热闹吧:-)
用的是免费的pandoc,关于pandoc的下载和安装不再提了,只是提醒一下安装pandoc之后,是需要安装LaTeX的(如果嫌MacTex太大,可以只安装basictex),否则不能转PDF文件。

好了,现在假设你已经安装好了pandoc和LaTeX,一个命令行就完成了你的任务
  1. $pandoc -N -s --toc --smart --latex-engine=xelatex -V CJKmainfont='PingFang SC' -V mainfont='Monaco' -V geometry:margin=1in 1.md 2.md 3.md ... xx.md  -o output.pdf
复制代码
命令行有两个最关键参数,
  1. --latex-engine=xelatex -V CJKmainfont='PingFang SC'  
复制代码
没有这个参数,pandoc显示不了中文,一个是指定LaTeX的渲染引擎,一个指定中文字体,你可以根据自己系统安装的字体来设置,其他的几个参数是锦上添花的东西,不是必须,只是我比较喜欢带书签的PDF,所以就加上了--toc,也喜欢大纲标题上带上自动分配的序列号,例如1 1.1 1.1.1……,所以也加上了-N选项。

可以支持多文件转换到一个PDF中,因为我大部分情况是只转换一个markdown文件,所以最多支持多少个文件就没有测试,我试了一下,转换几个文件还是可以的,下图是我转换两个文件到一个PDF中:
![两个MD合成一个PDF](http://ww1.sinaimg.cn/mw690/3e37e59cgw1f43jddav2aj20vg0liq84.jpg)

5#
热心的回应  16级独孤 | 2019-6-10 00:42:48 发帖IP地址来自
你需要这个:phodal/ebook-boilerplate: A Markdown convert to Ebook html、mobi、epub、pdf、rtf Template
编写的时候用 Markdown 分章,通过 Pandoc + Latex 来将内容转为 PDF。
已经用这个模板写了六七电子书,见 GitHub:

简介
在写电子书《一步步搭建物联网系统》的时候就为自己打造了一个生成HTML的生成脚本。
在写电子书《GitHub 漫游指南》,发现了 Backbone Fundamentals的构建电子书脚本。于是就复制了一份,然而却发现不支持生成中文的PDF——没有Tex模板。然后,就自己添加了一个Tex模板。
最近在整理一些文章、观点、想法,它就变成了《RePractise》——又一本电子书。
接着,接着,接着,就有了这个代码库。
[h1]Usage[/h1]
  • 运行init.sh
  1. ./init.sh
复制代码
输入书名和作者
  • 编译
编译全部: epub、mobi、html、pdf、rtf
  1. make all
复制代码
编译特定: epub、mobi、html、pdf、rtf

  1. make html
复制代码
[h1]Setup[/h1]
  • 基本编译需要pandoc
  • PDF要求环境Tex,推荐使用TexLive。
  • mobi需要kindlegen。
GNU/Linux和Mac OS可以使用
  1. gem install kindlegen
复制代码
6#
热心的回应  16级独孤 | 2019-6-10 00:42:49 发帖IP地址来自
身为一个程序员,我常用 GNU make
  1. pandoc --pdf-engine=xelatex
复制代码
。我会使用自定义的
模板,包含部门等信息。
如果有一些需要生成的图形,例如用 Graphviz dot 画 UML class digram,就在 makefile 里做相关的编译,并指定好依赖关系。
如果要用文件来分节,可在 pandoc 里合并,也可以把每节用 pandoc 里转换成 .tex 再写一个 .tex 主文件去
  1. \input{}
复制代码

所有源文件都放到 git 仓库做版本管理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:32080
帖子:6440
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP