VSCode 中 Markdown Preview Enhanced 插件利用 Chrome (Puppeteer) 导出 PDF 文件使用说明与问题解决
准备
预先安装好 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 写法如下,就可以调整图片大小

页码显示
可以在导出的 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 文件使用说明与问题解决的更多相关文章
- Vscode+Picgo+github+Markdown Preview Enhanced实现Markdown一键上传图床以及导出pdf文件
目录 安装Vscode 安装及配置Picgo插件 安装Markdown Preview Enhance 安装Vscode 安装Vscode(不解释了) 安装及配置Picgo插件 在github中新建仓 ...
- 异常强大的Markdown编辑插件-Markdown Preview Enhanced
最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...
- 关于插件Markdown Preview Enhanced的使用技巧
目录 1.关于TOC 2.关于转义符 3.绘图 3.0 绘图配色主题 3.1 Flowchart(流程图) 3.2 Sequence diagram(顺序图) 3.4 保存为HTML shanzm 1 ...
- vscode Markdown Preview Enhanced 安装配置
打开VSCode 打开Externsion,可通过Ctrl+Shift+X 选中 Markdown Preview Enhanced并install即可 配置Preview风格: Magage -&g ...
- Atom预览markdown插件Markdown Preview Enhanced
atom 上目前最强的 markdown 插件Markdown Preview Enhanced 是一款为 ATOM 编辑器编写的超级强大的 Markdown 插件.这款插件意在让你拥有飘逸的 Mar ...
- 成功安装vscode中go的相关插件
让你成功安装vscode中go的相关插件 注意:该演示环境是windows环境,linux和mac环境操作思路一样 vscode中有很多go的相关插件,非常好用如下:gocodegopkgsgo-ou ...
- 利用private font改变PDF文件的字体
利用private font改变PDF文件的字体 前几天做项目,需要使用未安装的字体来改变PDF的文件.以前并没有实现过类似的功能,幸运的是我在网上找到了类似的教程,并成功实现了这个功能. 下面就跟大 ...
- 利用ITextSharp导出PDF文件
最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...
- 在 chrome 上导出 pdf
用html+css写出网页,然后在chrome上导出pdf 1. command + p:快捷呼出打印: 2. “目标打印机”:选择“更改”,之后选择“另存为PDF”: 3. 点“更多设置”,可以勾选 ...
- C# 利用ITextSharp导出PDF文件
最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...
随机推荐
- vue--v-if和v-show的区别(个人项目中的理解应用)
在面试的时候,一道vue基础到不能再基础的面试题叫做v-if与v-show的区别,当然答案网上一搜一大堆,基本两句话就能说明: 1.相同点:都是根据指令是否渲染该组件 2.不同点:v-if仅重新渲染当 ...
- 2024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2, 分别移除它们各自的一半元素, 将剩下的元素合并成集合s。 找出集合s中可能包含的最多元素数量。 输入:nums
2024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2, 分别移除它们各自的一半元素, 将剩下的元素合并成集合s. 找出集合s中可能包含的最多元素数量. 输入:nums ...
- 这几个好用的 Google 搜索技巧,让你飞起!
搜索能力是被绝大多数人低估一项基本素质,绝大部分做编程技术相关的朋友应该都知道如何使用 Google,但是并不知道如何利用它的潜力.其实不管是 Google 还是 百度,会搜索的人一样都可以查找到需要 ...
- docker 完美部署gitea
效果: docker-compose version: "3" networks: gitea: external: false services: server: image: ...
- 🔥httpsok-v1.11.0支持CDN证书自动部署
httpsok-v1.11.0支持CDN证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx .OpenResty 服务器设计.已服务众多中小企业,稳定.安 ...
- 10分钟搞定Mysql主从部署配置
流程 Master数据库安装 Slave数据库安装 配置Master数据库 配置Slave数据库 网络信息 Master数据库IP:192.168.198.133 Slave数据库IP:192.168 ...
- smtplib详解,发送邮件
创建邮箱账号 1.官网登录邮箱. 2.在邮箱的主界面找到"设置",新版的主界面与旧版稍有不同,一般位于上方,齿轮状的即是. 3.点击齿轮状的设置标志,会弹出一个下拉菜单,在最后有我 ...
- Spring 对 Junit4,Junit5 的支持上的运用
1. Spring 对 Junit4,Junit5 的支持上的运用 @ 目录 1. Spring 对 Junit4,Junit5 的支持上的运用 每博一文案 2. Spring对Junit4 的支持 ...
- json 编码后导致数字变为科学计数,从而导致解码后签名与编码前签名不正确的解决办法。
docoder := json.NewDecoder(strings.NewReader(string(originData))) docoder.UseNumber() _ = docoder.De ...
- Android 13 - Media框架(12)- MediaCodec(二)
关注公众号免费阅读全文,进入音视频开发技术分享群! 前面一节我们学习了 MediaCodec 的创建以及配置过程,了解部分设计机制以及功能,这一节我们将继续学习其他方法. 1.start start ...