Vue中使用jspdf转为pdf并文件下载(附:解决文件中文乱码

有某些场景,比如说页面有一个下载按钮,点击了下载按钮之后,会下载一个pdf文件。

这时候就需要用到jspdf这个库

使用方法:

1.下载依赖包

npm install jspdf --save

2.项目中引入

import JsPDF from 'jspdf'

3.进入场景 绘制一个下载按钮,定义点击事件方法

<button @click="generatePdf()">下载 PDF</button>

方法内部

generatePdf() {
      //实例化Jspdf
      const pdfDoc = new JsPDF()
      console.log(pdfDoc);
      //解决乱码方法
      // addFileToVFS方法添加字体文件,后面的字体是base64
      pdfDoc.addFileToVFS('blobs', addBase64())
      // 添加字体,字体名,格式
      pdfDoc.addFont('blobs', 'font_blobs', 'normal')
      // 通过字体名使用字体
      pdfDoc.setFont('font_blobs')
      // text() 方法在指定坐标点上添加文本
      pdfDoc.text("目录", 100, 10)
      pdfDoc.save('demo.pdf')

 save方法就是jspdf的内置方法,设置下载文件的名字并提交下载

addBase6是我们引入字体封装的方法

其中涉及到一个字体库引入(不引入的话jspdf生成下载的文件就会乱码

github中搜索jspdf,clone或者下载zip文件,下载之后找到 ’fontconverter‘ 打开 里面有一个'fontconverter.html',在浏览器中运行

打开之后就是这个样子,选择你的字体文件(xx.ttf) 然后点击Create会自动下载一个依赖你上传的字体文件的js,将这个js拖动到你的项目中使用。

3.1 js文件方法内部如何使用?

转为js的文件 放入文件中(我的是assets/font/font.js),还需要做出修改导出它

将他定义成一个方法,原js文件只需要保留引号内的字节,然后通过导出函数包括 return

import {addBase64} from '@/assets/font/fonts.js'

然后再项目中引入 回到第 3 步的方法内部中,可以看到我们使用了这个字体并定义了字体格式

然后我们打开浏览器,点击下载再查看文件打开文件方法中定义的目录中文生效了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue使用jsPDF库合并PDF,你需要按照以下步骤进行操作: 1. 安装jsPDF库 运行以下命令来安装jsPDF库: ``` npm install jspdf --save ``` 2. 创建Vue组件 创建一个Vue组件来处理PDF合并。在该组件,你需要定义一个方法来合并PDF文件。在这个方法,你需要使用jsPDF库来将多个PDF文件合并成一个文件。 以下是一个示例Vue组件: ```html <template> <div> <input type="file" ref="fileInput" multiple @change="handleFileInput"> <button @click="mergePDF">合并PDF</button> </div> </template> <script> import jsPDF from 'jspdf'; export default { methods: { handleFileInput(event) { this.files = event.target.files; }, mergePDF() { const pdf = new jsPDF(); const files = this.files; const fileCount = files.length; let loadedCount = 0; const loadPDF = (index) => { const reader = new FileReader(); reader.onload = () => { pdf.addPage(reader.result); loadedCount++; if (loadedCount < fileCount) { loadPDF(loadedCount); } else { pdf.save('merged.pdf'); } }; reader.readAsDataURL(files[index]); }; loadPDF(0); } } } </script> ``` 在这个示例,我们定义了一个`handleFileInput`方法来处理用户上传的PDF文件。我们还定义了一个`mergePDF`方法来将多个PDF文件合并成一个文件。在这个方法,我们使用jsPDF库创建一个新的PDF对象。然后,我们遍历上传的文件,并将它们添加到新的PDF对象。最后,我们使用`pdf.save()`方法将合并后的PDF文件保存到本地。 请注意,我们使用`FileReader`对象来读取每个上传的文件。当一个文件读取完毕后,我们将其添加到新的PDF对象。当所有文件都添加完毕后,我们调用`pdf.save()`方法将合并后的PDF文件保存到本地。 3. 运行Vue应用程序 最后,你需要运行Vue应用程序来测试PDF合并功能。上传多个PDF文件并单击“合并PDF”按钮,然后查看文件系统是否生成了一个名为“merged.pdf”的新文件。 希望这个示例可以帮助你在Vue使用jsPDF库合并PDF文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值