Markdown转PDF的各种方式区别

Chrome你看看别人IE

Posted by Donggu Ho on 2016-12-10

前段时间用 markdown 写了篇文档,需要转换成 PDF 格式提交。然后(居然)遇到了一些问题,各种方法最后得到的 PDF 文件也并不相同,在此记录。

各种在线转换

网上存在不少进行在线转换格式的网站,但都存在一个显著问题:只要涉及本地资源的文档则无法进行完美的转换。假如只是纯文本还好,如果.md文档中插入了本地图片,就会毫无办法。就算把图片一起传上去他也不认……【冷漠

另外网上转换的样式有限,无法进行微调也是问题之一。

从 html 生成 pdf

由于 markdown 和 html 之间可以进行无损转换,而网页浏览器都带有打印为 pdf 的功能,所以算是非常方便的一种途径。比如我平时使用的 Markdown 编辑环境为Sublime Text 3 + OmniMarkupPreviewer,OmniMarkupPreviewer 会提供浏览器的实时预览,所以甚至不需要导出为 html,只要直接在预览页面打印即可。由于全套流程都在本地完成,所以字体兼容、图片显示等绝对没有问题;另一方面,html 的 CSS 样式修改非常方便,用浏览器的控制台随便改改就行。

但是……其实……用什么浏览器也是个问题……

使用 wkhtml2pdf

应该是效果最好的方式了,有无数的配置选项,然而命令行工具决定了这个工具只属于Geek。讲道理除了geek还有谁要把markdown转pdf啊

  1. wkhtmltopdf官网下载和安装对应的版本,支持WindowsLinuxOSX等操作系统。
  2. 配置本地的环境变量,添加wkhtmltopdf,值为wkhtmltopdf.exe(或别的格式)的路径。
  3. 在 Sublime Text 3 安装 wkhtmltopdf 的插件:

    • ctrl + shift + P, 输入install package并回车;
    • 输入wkhtmltopdf,选择插件并回车安装。
  4. 完成安装后,对于markdown文档,首先使用 OmniMarkupPreviewer 的快捷键 ctrl + shift + x生成html,然后打开html右键点击 wkhtmltopdf: Convert to pdf即可。一般来说默认配置就够用,但是想要进行更多配置的话请自行参阅 wkhtmltopdf的官方文档

地表最强浏览器 Chrome


宇宙默认浏览器 Chrome 的打印功能还是很全的,除了基本的纸张、缩放、布局(横向/纵向)、边距等调整,还可以勾选是否打印背景,以及是否添加页眉页脚。但是页眉页脚只有加和不加两种选择,不能选择显示的信息,也不能对位置进行变化。有时我只是想要一个页码,它啥都打印出来了就很尴尬。

另外,Chrome 的 PDF 打印还有一个非常致命的问题。
不能保留文字信息

不能保留文字信息

不能保留文字信息

不能保留文字信息

它将文字全部转化为矢量图存储,直接导致打印后文字不可选。一方面(通常)直接导致了文档变大;另一方面,这意味着这份 PDF 文档不能搜索不能复制文字!通常使用 markdown 写作的话都会有大量代码块存在,不能选文字我要它何用……讲道理我觉得简直太不科学了 Chrome 你作为业界标杆居然还不能保留文字信息。跑到应用商店搜了一下似乎并没看到能解决这个问题的扩展或者应用。Chrome无解。目瞪口呆。

斯巴达 Edge


惨遭微软改名部毒手的前斯巴达浏览器,听说是微软新宠啊时代先锋什么的。就试试吧。有纸张、方向、边距、页眉页脚可选,边距不能完全自定义,但很 Office 的普通适中也基本够用了;页眉页脚同样写死,也和 Chrome 一样丑。以及打印预览渣像素还不能放大。冷漠脸。

打印的PDF文字可选
微软爸爸你果然是办公良心!(热泪盈眶

但是同样存在一个较大的缺陷,不能打印背景图形。Which means 代码块的背景颜色、以及那些用两个` 的行内元素的背景都无法出现在 pdf 中。

没有背景的代码块跟咸鱼有什么区别啊你说。我还不如用 Word 写呢围笑。

永远的大爷 IE

由于我电脑并没有别的浏览器的,所以只能抱着绝望的心情打开 IE。

超沉重的。
打印预览的显示非常慢。

天哪我看到了什么!
如此详尽的设置选项面板!从布局到边距到缩放一应俱全而且数据都能自定义!!背景图形也能加!而且你看那个页眉页脚!贴心地给出了左中右给你选择想要的信息!还能更改字体!我的天哪!

[岳云鹏惊讶.jpg]

心情激动地打印了。文字可选。幸福的笑容。
Chrome 你学学人家好吗。试问谁能想到 IE 居然有如此巨大的优势呢。

一脸正室的 Adobe Acrobat Pro DC


Acrobat Pro 提供的创建 PDF工具可以从 html 文件生成 pdf,并且保留文字信息。我估计这么专业的 pdf 软件选项面板肯定是非常全面的。唯一的问题是 Acrobat Pro 是要钱的……而平时用的免费版 Acrobat Reader DC 并不提供此功能【哭。
虽然说这东西的破解版也是到处都有不过嫌麻烦懒得找了……一种骨气【?

请使用了该方法的同学给我发一下反馈……

果家Safari

没钱的我不知道呀。反正能打印是肯定的……

也求投稿

对比表格

工具 纸张 方向 边距 页眉页脚 背景图形 文字可选 其它
Google Chrome 不可自定义 ×
Microsoft Edge 不可自定义 ×
Internet Explorer 可自定义 非常豪华
Adobe Acrobat Pro DC 不可自定义 × × 要钱

从 LaTex 生成 pdf

pandoc

pandoc 可以将 markdown 转为 LaTex ……然后就想干嘛干嘛了……大概是逼格最高可控性最强的方式……问题是我不会 LaTex 啊【大哭

各种 Markdown GUI 编辑器

估计专门软件都不会有问题
懒得下载没测评过略略略