vue-cli 根据文字生成pdf格式文件 jsPDF

1.安装jspdf

复制代码
npm install jspdf --save

2.下载ttf格式文件

也可以用C:\Windows\Fonts下的字体文件,反正调一个需要的ttf字体文件就行,但有的字体存在部分字体乱码现象

微软雅黑ttf下载地址:

FontsMarket.com - Download Microsoft YaHei font for FREE

3.将ttf格式文件转为js格式

在线的网站,font-style选择normal

rawgit.com/MrRio/jsPDF/master/fontconverter/fontconverter.html

4.拷贝生成js文件里的字符串内容到自己的js文件

新建一个js文件:

复制代码
export function addfont(pdf) {

  var font = ''// 粘贴的内容

  pdf.addFileToVFS('yahei', font) // 这里填一个字体文件注册名称

  return true;

}

5.在使用pdf导出的vue里引入创建的js

复制代码
import { addfont  } from '../../../assets/custom-theme/fonts/font2'

exportFile(command) {
      // 创建jsPDF实例
      // eslint-disable-next-line new-cap
      const doc = new jsPDF()
      // 使用之前创建的js里的方法,会将字体文件添加到jsPDF实例中
      addfont(doc)
      // 这里名称和之前对上就行
      doc.addFont('yahei', 'yahei', 'normal')
      // 使用字体时,使用这句即可
      doc.setFont('yahei')

      const reportTitle = '测试内容\n' +
        '换行测试\n' +
        '换行测试'
      // 设置自动换行
      const splitTitle = doc.splitTextToSize(reportTitle, 190)
      // 添加文本内容,两个参数是开始的x和y坐标
      doc.text(splitTitle, 10, 10)
      // 保存PDF文件,会直接弹出下载
      doc.save('test.pdf')
    },

详情:JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案 - 有蚊子 - 博客园 (cnblogs.com)

相关推荐
Java小卷3 分钟前
流程设计器为啥选择diagram-js
前端·低代码·工作流引擎
HelloReader29 分钟前
Isolation Pattern(隔离模式)在前端与 Core 之间加一道“加密网关”,拦截与校验所有 IPC
前端
兆子龙1 小时前
从 float 到 Flex/Grid:CSS 左右布局简史与「刁钻」布局怎么搞
前端·架构
YukiMori231 小时前
一个有趣的原型继承实验:为什么“男人也会生孩子”?从对象赋值到构造函数继承的完整推演
前端·javascript
_哆啦A梦1 小时前
Vibe Coding 全栈专业名词清单|设计模式·基础篇(创建型+结构型核心名词)
前端·设计模式·vibecoding
百里静修1 小时前
一个 Hook 拦截所有 AJAX 请求:ajax-hooker 使用指南与原理
前端
摸鱼的春哥2 小时前
惊!黑客靠AI把墨西哥政府打穿了,海量数据被黑
前端·javascript·后端
小兵张健2 小时前
Playwright MCP 截图标注方案调研(推荐方案1)
前端·javascript·github
小兵张健3 小时前
AI 页面与交互迁移流程参考
前端·ai编程·mcp
小兵张健3 小时前
掘金发布 SOP(Codex + Playwright MCP + Edge)
前端·mcp