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 / ...
随机推荐
- C语言程序设计-笔记04-函数
C语言程序设计-笔记04-函数 例5-1 计算圆柱体的体积.输入圆柱的高和半径,求圆柱体积volume=πxr^2xh.要求定义和调用函数cylinder(r,h)计算圆柱体的体积. #includ ...
- vue+vant+js实现购物车原理小demo(基础版)
电商毕业设计里的一个购物车demo,拿vue+vant需要写的核心计算代码只有12行.效果图: main.js: Vue.use(Stepper); .vue文件 <template> & ...
- MO Memory
关于MO和OI的选拔流程 MO:省赛--联赛--国赛 省赛:各省组织,时间不同但多在4~6月.按成绩选出参加联赛选手.浙江省的省赛全称"浙江省高中数学联赛",5月进行. 联赛:旧称 ...
- Ajax 请求总共有八种 Callback
1)onSuccess 2)onFailure 3)onUninitialized 4)onLoading 5)onLoaded 6)onInteractive 7)onComplete 8)onEx ...
- RestTemplate 介绍和用法
RestTemplate 简介 RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求.POST 请求.PUT ...
- .NET 基础知识 单文件部署和可执行文件 剪裁独立部署和可执行文件
单文件部署和可执行文件 https://docs.microsoft.com/zh-cn/dotnet/core/deploying/single-file 剪裁独立部署和可执行文件 http ...
- 腾讯蓝鲸平台部署v5.1版本[去坑]
腾讯蓝鲸平台部署 1. 环境准备 #1. 基础优化 ulimit -SHn 655360 yum remove mysql-devel -y && yum install mysql- ...
- 微信小程序跳转重新加载目标页
可用于在首次进入到小程序后就执行性了首页的onLoad方法,等你再去点击其它页面再回来的时候就不会加载onLoad了,比如你跳到登录页后再返回到首页会发现首页啥数据都没加载,所以你在登录那边进行跳转的 ...
- yum源的基本知识
一.yum源配置 1.本地yum源配置内容 [local]#仓库名称,自定义,担具有唯一性 '唯一性是说在yum.repos.d这个文件夹中只能有一个这个名字的yum仓库' name=local_ce ...
- mvn 打包报错:no compiler is provided in this environment
最近公司换了电脑,系统也从 win7 升级到 win11,开发环境都重新安装了一遍,然后在 idea 用mvn 执行打包命令 mvn clean package 报错: no compiler is ...