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

下载安装:Adobe Acrobat DC |PDF编辑器

建议:不熟悉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.docxpandoc %%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开发图片下载器之教程与源码分享

对于学习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开发』
我喜欢钻研,喜欢学习自己感兴趣的东西,
在这里,我会坚持分享很多有用的学习心得和学习资源,
你可以在这里找到你需要的一些学习经验和学习资源。

Markdown转PDF→利用 Markdown 制作电子书|非常简单相关推荐

  1. python代码翻译器-利用Python制作一款简单的翻译软件

    导语 之前写了两篇: Python之百度翻译小爬虫Python之有道翻译小爬虫 随手再加个Google翻译,然后把它们整合到一个Demo上,制作了一款简单的翻译软件.让我们愉快地开始吧~ 开发工具 P ...

  2. 利用python制作几个简单的游戏

    文档介绍 利用python写"猜数字","猜词语","谁是卧底"这三个游戏,从而快速掌握python编程的入门知识,包括python语法/列 ...

  3. HTML制作猜拳小游戏,利用Eclipse制作的一个简单UI猜拳小游戏

    玩家类: import java.util.*; public class Players { //玩家角色名 String userName="";--------------- ...

  4. 如何利用python制作几个简单的游戏?(简单易上手版)

    嗨害大家好鸭~我是小熊猫

  5. 使用git和markdown制作电子书(一)

    做一个产品,经常都需要书写各种文档,同事间用的系统也是各种各样,之前使用过Pandoc来书写API手册,效果还是非常好的. 今天我们尝试用gitbook来完成.gitbook是一个利用工具github ...

  6. gitbook通过markdown制作电子书

    gitbook通过markdown制作电子书 环境: gitbook-cli: 2.3.2(2017-07-14) gitbook: 3.2.3(2017-08-03) Node.js: 10.24. ...

  7. mdbook通过markdown制作电子书(代替gitbook)

    mdbook通过markdown制作电子书(代替gitbook) 环境: mdbook: v0.4.28 前言 gitbook制作电子书大家已经非常熟悉了,但是对于gitbook工具官方已经不再维护了 ...

  8. 如何更好使用markdown输出pdf

    如何更好的使用markdown输出PDF 背景:当前很多人比较常用的 markdown 编辑方式是用vscode编写,再使用 vscode 中 的 MPE 的进行预览.有时候会出现这种情况:想要最终输 ...

  9. 在sublime text3中利用markdown

    1.安装Markdown Preview插件 输入 Shift + Ctrl + P(也可以点击 Preferences --> 选择 Package Control: ,然后输入install ...

最新文章

  1. sql privot
  2. JavaScript 九种跨域方式实现原理
  3. php strtotime month bug,处理PHP strtotime的BUG
  4. python用递归法写斐波那契_python实现斐波那契数列: 递归+备忘录法+动态规划实现...
  5. 【漫画详解】用iframe障眼法,骗取用户点击
  6. 遍历界面控件 android,Android 判断所有字段是否已经输入的实例
  7. Google 亚马逊又双叒叕打架了!用户:我只想安静地用产品
  8. windchill安装搭建(保姆式)
  9. 主机当前没有管理网络冗余
  10. 数商云DMS渠道商城系统全渠道营销场景应用举例,赋能日化行业增强渠道掌控力
  11. 互联网时代,“羊毛出在狗身上,由猪买单”,打败你的不再是你的对手,而是........
  12. 一招惊艳所有人,HTML制作网页成绩表
  13. eclipse的启动失败提示发生了错误,请参阅日志文件
  14. jetson-NX刷机
  15. 关于深度学习,这可能是你最容易读懂的科普贴
  16. gitlab push 时提示 “Empty Reply From Server”
  17. java取当前周期、月初至月末、季度初至季度末日期。
  18. 通过ssh隧道访问mysql
  19. 嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)
  20. python数学建模--绘图动态可视化图表

热门文章

  1. 正则表达式匹配数字和字母组合,且不能为纯数字或纯字母
  2. 后期强美颜大师完整破解版
  3. win7打开远程计算机,win7系统开启远程桌面实现远程连接图文教程
  4. 【花雕体验】08 行空板硬件控制pinpong库的系列测试(之一)
  5. 微软商店报错代码:0x800706D9的一种解决方案
  6. Linux shell脚本——参数和输入输出
  7. 雨林木风GHOST XP 在虚拟机上的安装步骤
  8. windows7最大支持多少内存
  9. 100集华为HCIE安全培训视频教材整理 | 准入控制功能实现(七)
  10. CorelDRAW 批量导出jpg文件的方法