1.npm i vue-to-pdf --save
2.main.js
import vueToPdf from 'vue-to-pdf'; Vue.use(vueToPdf);
3.转化为pdf并下载
注意:div中的图片需要在本地,线上图片需要转化为base64格式才能显示
mounted() { this.$PDFSave(this.$refs['content'], '我的文件') }
4.转化为pdf格式的file数据
methods: { onHandle() { var promiseObj = this.$PDFOutput(this.$refs['box']) promiseObj.then((value) => { this.httpRequest(value).then(res=>{ // value:bolburl
// res:file文件
}) }) }, httpRequest(src) { let that = this
return new Promise((resolve, reject) => { let xhr = new XMLHttpRequest() xhr.open('GET', src, true) xhr.responseType = 'blob' xhr.onload = function (e) { if (this.status == 200) { let myBlob = this.response let files = new window.File( [myBlob], that.objData.prj_no + '.pdf', { type: myBlob.type } ) // myBlob.type 自定义文件名
resolve(files) } else { reject(false) } } xhr.send() }) }, },