Markdown转PDF→利用 Markdown 制作电子书
前言
遇到什么问题就解决什么问题,什么不会就学什么.
是这样的,因为最近在看数据分析的书籍
《利用Python进行数据分析 原书第2版》
,这本书的英文很早就有了,但是网上找不到英文版,不过简书上有人发表了中文翻译版。苦于不是电子书,感觉阅读起来很不方便,也难以携带。简书上有HTML
的文档和github上有markdown
的文档翻译,所以我在想能不能将HTML和markdown格式的文件转换为PDF,然后弄成电子书。有了需求就开始寻找办法了,网上都有很多方法,以前我使用Atom
的markdown插件导出的,但是效果不是很好,一些图片没办法导出,而且也没办法生成docx
文档。下面我将介绍两种方法,如何制作电子书的.
工具准备
- pandoc
直接使用pandoc
这个软件进行转换 - pypandoc
通过Python的一个库进行转换
工具一:pandoc
- ①官网 http://www.pandoc.org/
- ②安装:按照官网的说明操作即可,比较简单
工具二:pypandoc
- ①官网 https://pypi.org/project/pypandoc/
- ②安装:按照Python扩展库的安装操作即可.
工具三:Adobe Acrobat DC
建议:不熟悉Python的用第一种方法,相对来说第一种方法简单,而且文档丰富,第二种方法需要安装Python环境,很麻烦,除非你使用Python进行开发。
使用方法
具体的使用方法建议大家阅读文档操作,毕竟每个人的需求不一样。pandoc的转换功能非常强大,而且很实用。
此外,因为将markdown文件
转换位PDF文件
需要安装LaTeX
,但是使用过程会遇到很多麻烦,解决起来很棘手。
所以我的想法是,将markdown转换为docx文件,再合并,最后将合并好的电子书转换为PDF文件。
这样也可以省去很多不必要的麻烦。
当然其实功能还有很多很多,我也只是介绍了几个,或者根据我的需要来选择,你也可以选择其他的方法。
《利用Python进行数据分析·第2版》|markdown文件下载
如下,我将这本书的markdown文件
下载到本地了,一共是17个文件。
由于转换过程中文件名包含中文会出错,所以我将文件名全部修改为数字.
提供一个一键修改文件名的工具吧,下载直接打开使用即可
其他更多使用方法大家自己测试吧
FreeRename下载 提取码: bg86
方法一
开始转化,这里使用一位简书作者的代码生成一个Windows可处理文件吧.
简书|更优雅地把Markdown文件转为PDF格式
脚本封装,支持批量转换
把转换命令封装成bat批处理脚本,以后再进行转换的时候只需简单双击一下bat脚本即可,比如封装成convertPDF.bat文件,内容如下:
pandoc text.md -o text.docx && pause
批量处理:假如几十上百个md文件要批量转为docx文件,难道要手工一个个复制这些文件名和pandoc命令去转换吗?完全不需要,一个bat脚本搞定(convert.bat):
@echo off
:: 遍历当前文件夹下的所有后缀名为md的文件
for /f %%a in ('dir /b *.md') do (
:: 执行pandoc命令,把每个md文件都转为docx文件,docx文件的文件名为:md文件名.md.docx
pandoc %%a -o %%a.docx
)
pause
使用方法很简单,使用文本编辑器创建一个TXT文档,然后复制上述代码进去,保存,最后退出来修改文件后缀名为.bat
,将需要转化的markdown文件
放到一个文件夹下,复制convertPDF.bat
到该目录下,双击打开,等待转化完成。
这个时候就将markdown文件
转化为docx文档
了。
方法二
直接使用pandoc转换。
pandoc text.md -o text.docx
注:运行此代码需要进入到该目录下
- ①Windows10 系统直接在该目录空白处,按住
Shift
键,然后鼠标右键,在此处打开Powershell/cmd窗口
- ②
win + R键
打开运行
窗口,输入cmd
回车,然后进入该目录下,具体的操作可以谷歌。
其他的更多用法大家可以参考pandoc Demos文档
http://www.pandoc.org/demos.html
方法三
使用Python进行操作。
相对来说用pypandoc
还是有很多好处的,例如你可以利用这个库轻松开发出一个简单的应用,还可以利用这个库实现一些抓取网页的功能,因为pandoc
可以实现下载一个web page
然后转化为docx或者其他格式的文件,而pypandoc
提供了pandoc的接口参数,非常方便。当然这都是对学习Python的人来说比较简单。
import pypandoc
output = pypandoc.convert_file('somefile.md', 'docx', outputfile="somefile.docx")
最简单的例子就是这样,首先进入这个文件夹或者在Python中指定文件目录,然后运行上述代码即可。要是想批量转化也是可以的,定义好相对路径,写好脚本,打包为EXE可执行文件,实现一个遍历转化markdown为docx。这里就不再写这个操作了,比较简单,至于打包为可执行文件的可以参考我之前的文章。
对于学习Python的同学,我还是建议使用pypandoc
的,因为可以调用Python程序。
合并docx&转为PDF
可以先转换为PDF再合并PDF,但是这样感觉不是一个完整的PDF文件,而且不够美观。所以考虑先合并docx再转PDF,这样更完美。
合并docx
我们使用Office 2010
将17个docx文件合并
- 首先新建一个名为
利用Python进行数据分析第二版
的docx文件 - 打开这个新建的文件,点击页面上方功能区的
插入
选项卡下的对象
中文件中的文字
,按照顺序选择这17个文件,点击插入
。这个时候就成功合并了这17个文件,并且左边是带有完整目录的,并且该目录可以定位到对应的位置。 - 点击保存
转为PDF
- 直接利用
Adobe Acrobat DC
在word中的插件转位PDF,点击上方功能区中的Acrobat
下的创建PDF
,点击保存
。现在成功创建好PDF文件了。 - 电子书制作完成,下面看看预览效果。
《利用Python进行数据分析|第二版》下载
因为没看到有免费的电子书下载,所以这里分享一下我制作好的这本电子书吧。
这本书对于学习Python数据分析还是很好的,大家可以下载学习。
练习环境可以使用Anaconda|Jupyter notebook
- 书籍下载: 关注个人公众账号【net咖啡屋】回复
电子书18
pandoc的其他功能
这里顺便再提一下pandoc的其他的一些功能,具体的大家可以看文档学习测试。
例如之前我提到的这本书
《Learning Scrapy》
译:《精通Python爬虫框架Scrapy》
一样是有简书翻译的
《Learning Scrapy》|简书
很不幸运的是,作者没有给出markdown源文件,我们只可以网上阅读了。为什么需要markdown源文件呢,因为markdown良好的编辑格式使得转化的时候保持了层次分明、带书签的板式,很方便我们制作电子书,节省了很多时间。
值得庆幸的是,pandoc提供了web page 转化为docx的功能。
下面我们来尝试一下。
pandoc -s -r html webpageURL -o doc.md
这里随便转化了一页,但是markdown下的预览很糟糕,因为很多其他多余的内容。
然后我先将其转化为 docx 文档,然后再将多余的内容删掉,然后修改保存。看起来效果还是很好的。
pandoc doc.md -o doc.docx
我测试了多个页面的爬取和转化,发现效果还是很好的,这里如果使用Python的pypandoc
来做,就可以做一个EXE程序了,很方便,可以实现自动输入webpagURL
实现爬取,然后转化,还是很不错的体验。
更多的用法大家自行测试和思考吧,这里不再赘述了。
Markdown在线生成PDF|网站
这里推荐大家一个markdown自动转化PDF的免费网站吧,体验了一下,感觉还是非常不错的。
MDTR2PDF|MARKDOWN在线生成PDF http://www.mdtr2pdf.com/index.htm
简单介绍一下
免费文档转换|值得推荐
FREE-CONVERTER https://cn.free-converter.com/
这个设计很广,可以转换的文件和内容非常多!!!
具体的我这里不介绍了,实在是很丰富!
欢迎关注我的个人公众账号:net咖啡屋
目前涉猎的领域有
『Python』『数据库』『C++』
『数据分析』『网络爬虫』『GUI开发』
我喜欢钻研,喜欢学习自己感兴趣的东西,
在这里,我会坚持分享很多有用的学习心得和学习资源,
你可以在这里找到你需要的一些学习经验和学习资源。