vue-to-pdf的使用:vue中将div转换为pdf文件

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()
            })
        },
    },

 

posted @ 2021-10-13 16:35  惊蛰丶  阅读(2317)  评论(1编辑  收藏  举报