准备

预先安装好 Chrome 浏览器。

使用方法

右键选择 Chrome (Puppeteer)。

设置 Puppeteer

通过 front-matter

即在 markdown 文档开头加上 yaml 格式的配置代码

---
puppeteer:
format: "A4"
scale: 1.0
margin:
top: 2cm
right: 3cm
bottom: 2cm
left: 3cm
---

这里 format 表示纸张格式,scale 表示缩放,margin 表示页边距。

更多设置选项说明可以参考官方文档 (https://github.com/puppeteer/puppeteer/blob/v1.8.0/docs/api.md#pagepdfoptions)

公式渲染问题

有时会发现一些公式渲染没有显示,这是因为 Puppeteer 导出 pdf 的原理是网页快照。渲染还没有完成,网页已被导出。

解决方案是延迟导出时间,即

---
puppeteer:
timeout: 3000
---

表明等待 3000 毫秒(此时认为渲染已完成)后导出

另一种解决方法是修改插件设置,这与上面的方法效果一样

代码背景显示问题

有时会发现代码背景没有显示,如图

而预期效果应为

解决方法是修改插件设置,设置打印背景

保存时自动导出

---
export_on_save:
puppeteer: true # 保存文件时导出 PDF
puppeteer: ["pdf", "png"] #保存文件时导出 PDF 和 PNG
puppeteer: ["png"] # 保存文件时导出 PNG
---

图片调整大小

导出的 pdf 文档中,图片可能过大,解决方法是添加自定义 css。

即在 front-matter 后加上

<style>
img{
width: 60%;
padding-left: 20%;
}
</style>

这段代码的意思是,把所有图片的宽度设置为段落宽度的 60%,并向右移 20%(即让图片居中)。

也可导入外部 css 文件。

如在文件 style.css 中有

img{
width: 60%;
padding-left: 20%;
}

在 markdown 文件的front-matter后加上

@import "style.css"

此时效果与上相同。

当然有更好玩的方法,使 style.css

img[src*="#w100"] {
width: 100%;
} img[src*="#w80"] {
width: 80%;
} img[src*="#w60"] {
width: 60%;
} img[src*="#w50"] {
width: 50%;
} img[src*="#w30"] {
width: 30%;
} img[src*="#w20"] {
width: 20%;
} img[src*="#w10"] {
width: 10%;
}

此时 markdown 写法如下,就可以调整图片大小

![](img.png#w60)

页码显示

可以在导出的 pdf 文件上显示页码

---
puppeteer:
timeout: 3000
displayHeaderFooter: true
headerTemplate: '<span class="pageNumber"></span>'
footerTemplate: '
<div style="font-size: 10px; margin-left: 20px;">
<span class="pageNumber"></span> /
<span class="totalPages"></span>
</div>
'
---

简单排版

添加大段空行

<p style="margin-bottom: 400px;"></p>

换页,只有在导出为 PDF 时才会起作用

<div STYLE="page-break-after: always;"></div>

总结

比较合适的 front-matter

---
puppeteer:
scale: 0.8
margin:
top: 2cm
right: 3cm
bottom: 2cm
left: 3cm
timeout: 3000
displayHeaderFooter: true
headerTemplate: '<span class="pageNumber"></span>'
footerTemplate: '
<div style="font-size: 10px; margin-left: 20px;">
<span class="pageNumber"></span> /
<span class="totalPages"></span>
</div>
'
---

VSCode 中 Markdown Preview Enhanced 插件利用 Chrome (Puppeteer) 导出 PDF 文件使用说明与问题解决的更多相关文章

  1. Vscode+Picgo+github+Markdown Preview Enhanced实现Markdown一键上传图床以及导出pdf文件

    目录 安装Vscode 安装及配置Picgo插件 安装Markdown Preview Enhance 安装Vscode 安装Vscode(不解释了) 安装及配置Picgo插件 在github中新建仓 ...

  2. 异常强大的Markdown编辑插件-Markdown Preview Enhanced

    最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...

  3. 关于插件Markdown Preview Enhanced的使用技巧

    目录 1.关于TOC 2.关于转义符 3.绘图 3.0 绘图配色主题 3.1 Flowchart(流程图) 3.2 Sequence diagram(顺序图) 3.4 保存为HTML shanzm 1 ...

  4. vscode Markdown Preview Enhanced 安装配置

    打开VSCode 打开Externsion,可通过Ctrl+Shift+X 选中 Markdown Preview Enhanced并install即可 配置Preview风格: Magage -&g ...

  5. Atom预览markdown插件Markdown Preview Enhanced

    atom 上目前最强的 markdown 插件Markdown Preview Enhanced 是一款为 ATOM 编辑器编写的超级强大的 Markdown 插件.这款插件意在让你拥有飘逸的 Mar ...

  6. 成功安装vscode中go的相关插件

    让你成功安装vscode中go的相关插件 注意:该演示环境是windows环境,linux和mac环境操作思路一样 vscode中有很多go的相关插件,非常好用如下:gocodegopkgsgo-ou ...

  7. 利用private font改变PDF文件的字体

    利用private font改变PDF文件的字体 前几天做项目,需要使用未安装的字体来改变PDF的文件.以前并没有实现过类似的功能,幸运的是我在网上找到了类似的教程,并成功实现了这个功能. 下面就跟大 ...

  8. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  9. 在 chrome 上导出 pdf

    用html+css写出网页,然后在chrome上导出pdf 1. command + p:快捷呼出打印: 2. “目标打印机”:选择“更改”,之后选择“另存为PDF”: 3. 点“更多设置”,可以勾选 ...

  10. C# 利用ITextSharp导出PDF文件

    最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

随机推荐

  1. 手把手教你整Win10的Linux子系统(Ubuntu)

    手把手教你整Win10的Linux子系统(Ubuntu) https://www.bilibili.com/read/cv7770224/ 设置root用户的密码 可以通过 sudo passwd r ...

  2. 03 elasticsearch学习笔记-IK分词器?

    目录 1. 什么是IK分词器 2. 下载IK分词器 3. 使用kibana测试! 4. 创建自定义词典 5. Analysis 1. 什么是IK分词器 2. 下载IK分词器 下载地址,版本要和ES的版 ...

  3. JS对Cookie的应用--JavaScript实例集锦(初学)

    一个网站上的cookie信息可以实现下次自动登录,记录你的历史等等 可以在火狐浏览器查看本地代码的cookie信息: 打开火狐浏览器--点击右键--查看页面信息--安全--查看cookie <! ...

  4. iPad 远程控制 Mac 电脑远程办公的终极解决方案

    作为安全技术人员来说,用 iPad 远程控制 Mac 电脑,在我看来是一件很酷的事情! 首先吐槽一下自己为什么会有这个奇怪的想法,原因是因为,目前我有一个16寸的mac,我每天下班的第一个动作就是先把 ...

  5. 2023最新nacos的windows 10安装(保姆级)

    目录 前景提要 一.环境整合 构建工具(参考工具部署方式) 二.找到下载位置 1.在百度中找到下载地址.搜索nacos中文官网. 2.双击进入这个网站,看到首页找到下载位置. 3.进入git地址找到如 ...

  6. 用 C 语言开发一门编程语言 — 变量元素设计

    目录 文章目录 目录 前文列表 变量 变量语法规则 变量的读取和存储 将变量加入 Lisp Value 体系 变量的计算 变量的定义与赋值 异常处理优化 源代码 前文列表 <用 C 语言开发一门 ...

  7. webapi动态创建后台任务(使用排队的后台任务)

    很多时候我们都会使用后台定时任务,但有些任务不需要定时执行,只需要请求到来时执行一次,比如请求服务器到某个地方同步数据,但请求不需要等数据同步完成再响应.这时候就可以使用排队的后台任务. 基本原理是用 ...

  8. 模拟重装Kubernetes(k8s)集群:删除k8s集群然后重装

    目录 一.系统环境 二.前言 三.重装Kubernetes集群 3.1 环境介绍 3.2 删除k8s所有节点(node) 3.3 kubeadm初始化 3.4 添加worker节点到k8s集群 3.5 ...

  9. linux wget命令的重要用法:下载文件并保存,后台下载

    Linux wget命令是一个下载文件的工具,它用在命令行下. #从网络下载一个文件并保存在当前目录 [root@node5 ~]# wget http://cn.wordpress.org/word ...

  10. MySQL 导出一条数据的插入语句

    1.MySQL 导出一条数据的插入语句的方法 在MySQL中,如果我们想要导出一条数据的插入语句,我们可以使用SELECT ... INTO OUTFILE语句(但这通常用于将整个表或查询结果导出到一 ...