欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

vscode markdown preview enhance 插件 pdf 导出

发布时间:2024/1/1 编程问答 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 vscode markdown preview enhance 插件 pdf 导出 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

vscode markdown 导出为 pdf 方法探究

  • vscode markdown 导出为 pdf 方法探究
    • 前言
    • Open in Browser 导出
    • Chrome(Puppeteer)导出
    • pandoc 导出
    • prince 导出
    • eBook 导出
    • 特别提示
      • front matter 的编写
      • pandoc parse
    • 其他插件
      • markdown pdf
      • Markdown Converter
      • 然后就没有然后了
    • 总结

前言

Markdown Preview Enhanced(下文简称为 MPE) 是 vscode 中的神级插件。对 markdown 文件提供了许多方面的支持,功能十分强大,上天入地无所不能。本文介绍的 markdown 转化为 pdf 文件主要就是基于该插件。

虽然说插件的作者写了详细的使用文档,但是由于该插件的高级功能需要用户本身有着较好的计算机基础,因此对于小白(对我就是那个小白😄)而言,仍然不是件容易的事。

我研究了一下午如何使用 MPE 导出 pdf 文档,虽然说目前仍然无法导出十全十美的文档,但总算有了一些突破,特此分享一下。如果有朋友,vscode 导出 pdf 有更好的主意,也请不吝赐教。

这边还需要提一下,之前 MPE 还支持 phantomjs 打印不过现在不支持了。

点击此处,下载本文演示用于 pdf 导出的 md 文档。

Open in Browser 导出

最通用的方式,就是右键预览页面,然后选择 Open in Browser,然后打印浏览器页面。这个方式的打印效果,随着打印所用的浏览器以及所使用的虚拟打印机的不同,而有轻微的差异。

仅展示在 chrome 打开,用 adobe acrobat 打印的文件。总体感觉上看,chrome 对 pdf 打印的支持稍微好于 firefox。

具体效果,有兴趣的朋友可以自己尝试一下。但总的来说这种方式有一大缺点,那就是 打印出来的 pdf 是图片类型的,文章中的连接之类全部失效。

Chrome(Puppeteer)导出

接下来讲一个稍复杂的,用 Chrome(Puppeteer)导出。首先,你电脑上得安装有 Chrome 浏览器。然后,右键预览页面,选择 Chrome(Puppeteer) 选项下面的 PDF,即可。

这种方式导出的 pdf 文档,是符合我们喜好的文字型的 pdf 文档。

但是默认样式下有个问题就是 文字太淡。事实上说明文档中介绍,这种方式应该是能通过 front matter 来进行调整的。所谓的 Front-matter 是文件最上方以 --- 分隔的区域,用于指定个别文件的变量,具体可以参考 hexo 的说明。

然而遗憾的是,帮助文档中对 Puppeteer 的 front matter 介绍太少,我一一试下感觉效果不好。编写的 front matter 如下(不知道其他可以的参数名是什么):

puppeteer:pdf:format: A4displayHeaderFooter: truemargin:top: 0.05cmright: 0.05cmbottom: 0.05cmleft: 0.05cmimage:quality: 90fullPage: true

不过从图像上看,这个 front matter 好像一点效果都没有 😢。

pandoc 导出

和前一节中的 Puppeteer 不同的是使用 pandoc 必须要编写 front matter。帮助文档中对于 pandoc front matter 介绍 的稍微详细一些。在我不断尝试下,终于能够打印出还算过得去的 pdf 文档。这里安装 pandoc 之类的操作就请参考帮助文档。我们直接进入正题,我编写的 front matter 如下:

title: 测试 author: luwantaomail@qq.com date: 2019年6月8日 # 指定汉字字体,如果缺少中文显示将不正常 CJKmainfont: 方正苏新诗柳楷简体-yolan # latex 选项 fontsize: 12pt linkcolor: blue urlcolor: green citecolor: cyan filecolor: magenta toccolor: red geometry: margin=0.3in papersize: A4 documentclass: article# pandoc设置 output:pdf_document:path: /Exports/Habits.pdftoc: truetoc_depth: 2number_sections: truehighlight: tango # 打印背景色 # 保存文件时自动生成 # export_on_save: # pandoc: true

效果如下:

效果还算不错。用了 tango 代码高亮主题,这个主题好就好在,代码部分有深一点的背景色,易于区分。

prince 导出

首先需要安装 prince,如果安装 prince 后,右键预览选择 PDF(prince) 提示 princexml 没有安装,是 prince 没有被添加到系统变量中,请按如下操作。

默认,情况下 prince 导出效果如下:

可以看到,对中文和 latex 的支持不好。

其实帮助文档已经提到,prince 对 ketex 和 mathjax 的支持不好。并且这个导出的文档无法支持目录跳转,于是我就不再进一步研究了。

eBook 导出

最后就是 eBook 导出了。终于快写玩了 😄。eBook 到处需要用到 Calibre,按帮助文档说明安装,将 ebook-convert 加入到系统变量。

在导出 pdf 前同样需要编写 front matter ,否则导出的 pdf 为空。不过就算是编写了 front matter ebook 目前导出 pdf 还是存在问题。

这一点其实帮助文档中也有提到。不过导出 equb 文件效果还是不错的。这是我编写的导出 equb 的 front matter:

ebook:title: mytestauthor: luwantaomail@qq.commargin: 10cover: https://csdn-blog-1258434200.cos.ap-shanghai.myqcloud.com/undefinedhwc_ttoto.jpgepub:no-default-epub-cover: truepretty-print: true

效果如下:

latex 支持倒可以,不过有部分图像不能正确显示,用 calibre 将这个 equb 转换成 pdf 后效果更差:

所以,这种方式目前也只是看看而已了。

特别提示

front matter 的编写

编写 front matter 时,不熟悉的人(如我)很容易犯错,所以可以将设置中 Front Matter Rendering Option 设置为 table,这样 front matter 将在预览中以 table 形式存在,比较直观(默认是none):

更改之后显示的表格:

如果明显写错,那么就看不到表格。另外注意这边空格和tab也得严格区分开,否则虽然能看到表格,但是设置实际上是无效的。

pandoc parse

MPE 的设置中有个选项,Use Pandoc Parse。这个设置慎用,如果勾选了这个,那么 MPE 将用 pandoc 解析md,目前看来会导致一些问题。比如无法跳转目录(在预览中)、语法拓展高亮失效等。

其他插件

既然已经试了 MPE 的这么多种转换方法,不妨试一下其他插件,看有没有好用又方便的。

markdown pdf

这个插件配置还算简单,只要设置 chrome.exe 的路径即可。但是效果不好,如图:

latex 不支持的话,可以下地狱了 😒 当然也可能是我没认真研究,评分这么高的插件应该不至于如此。

Markdown Converter

这个插件也是基于 chromium 不过,作者考虑到了 自己提供了 chromium 供用户下载。安装后在默认设置的情况下,转换后只有我的名字 😱

然后我查看设置,似乎也没有什么设置能改变这一切 😏

然后就没有然后了

然后我搜了一下,似乎没有什么其他能用的插件了,于是今天先到此为止 😃。

总结

如果仅用 markdown preview enchanced 插件,那么 pandoc 导出无疑是最好的方式。然后要写出得到更完美的 pdf 文档,就需要好好研究一下 pandoc 的用法了。

你可以下载查看一下本文用 pandoc 和 Puppeteer 转换成 pdf 的效果。

链接:https://pan.baidu.com/s/1B0ANQADSgbxU1vnzp2p2Eg
提取码:m1em

总结

以上是生活随笔为你收集整理的vscode markdown preview enhance 插件 pdf 导出的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。