准备

预先安装好 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. Oracle、达梦:_ 英文下划线 让LIKE查询失效的解决方案:ESCAPE关键字

    oracle/dm:_ 英文下划线让like查询失效的解决方案:ESCAPE关键字 -- 可以查询出带(\)的值 SELECT "f1","f2" FROM & ...

  2. postgresql建表空间、建库、建模式、建用户的规范

    一.官方概念说明 1.表空间(表空间位置不应该位于数据目录内) 性能优化:您可以将高I/O的表和索引放在高速磁盘上,而将不经常访问的表放在普通的磁盘上. 管理磁盘空间:当数据库存储空间不足时,可以通过 ...

  3. VNC远程控制软件是什么?有没有更好的远程桌面控制解决方案?

    看官老爷们,你们是否需要远程访问或远程支持解决方案?来了解下VNC吧. 什么是VNC? VNC是虚拟网络计算(VNC)是一种远程桌面共享技术,用于从世界任何地方远程访问和控制计算机. VNC的工作原理 ...

  4. 80x86汇编—80x86架构

    文章目录 计算机如何工作 存储器 逻辑地址到物理地址 寄存器 数据寄存器使用细节 其他知识点细节 堆栈Stack 标志寄存器 中断 汇编入门简单,深入难 使用8086架构进行学习,本章节如果没有学过计 ...

  5. 使用 Amazon Cloud WAN 构建您的全球网络(内含免费套餐申请入口)

    前言 对 AWS 云技术感兴趣的朋友们,可以尝试申请免费套餐的 AWS 账户,提供了 100 余种可以使用免费套餐的 AWS 云服务. 国内区域账户:https://www.amazonaws.cn/ ...

  6. pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存

    需求: 在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑.编辑后,可以再同步保存到服务器端. 开发环境: java springboot,thymeleaf 服务器环境: 无 ...

  7. 你知道 Java 有哪些引用吗?

    前言 判断对象是否要回收有引用计数法和可达性算法两种方式,无论哪种都离不开引用,本文将介绍Java的四种引用. 一.概述 二.详解 1. 强引用 概述 在Java程序中,强引用是最常见的也是默认的.n ...

  8. go新手常踩的坑

    作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021年到现在,笔者手上也先后开发了两个go项目.在学习go语言的过程中也学习并总结了一些相关的东西, ...

  9. 研二学妹面试字节,竟倒在了ThreadLocal上,这是不要应届生还是不要女生啊?

    一.写在开头     今天和一个之前研二的学妹聊天,聊及她上周面试字节的情况,着实感受到了Java后端现在找工作的压力啊,记得在18,19年的时候,研究生计算机专业的学生,背背八股文找个Java开发工 ...

  10. CSS——渐变色

    <!DOCTYPE html> <html> <head> <style> div { width: 210px; height: 50px; floa ...