Vue导出页面为PDF格式的实现思路
通过网上的查阅以后,说一下思路.就是将页面转换成图片格式.然后通过图片的base64码.生成PDF..看了他们的文章,做了如下整理..
说起来很容易,那么具体怎么实现呢?
1、我们要添加两个模块
第一个.将页面html转换成图片
npminstall--savehtml2canvas
第二个.将图片生成pdf
npminstalljspdf--save
2、定义全局函数..创建一个htmlToPdf.js文件在指定位置.我个人习惯放在('src/components/utils/htmlToPdf')
//导出页面为PDF格式
importhtml2Canvasfrom'html2canvas'
importJsPDFfrom'jspdf'
exportdefault{
install(Vue,options){
Vue.prototype.getPdf=function(){
vartitle=this.htmlTitle
html2Canvas(document.querySelector('#pdfDom'),{
allowTaint:true
}).then(function(canvas){
letcontentWidth=canvas.width
letcontentHeight=canvas.height
letpageHeight=contentWidth/592.28*841.89
letleftHeight=contentHeight
letposition=0
letimgWidth=595.28
letimgHeight=592.28/contentWidth*contentHeight
letpageData=canvas.toDataURL('image/jpeg',1.0)
letPDF=newJsPDF('','pt','a4')
if(leftHeight0){
PDF.addImage(pageData,'JPEG',0,position,imgWidth,imgHeight)
leftHeight-=pageHeight
position-=841.89
if(leftHeight>0){
PDF.addPage()
}
}
}
PDF.save(title+'.pdf')
}
)
}
}
}
3、在main.js中使用我们定义的函数文件。
importhtmlToPdffrom'@/components/utils/htmlToPdf' Vue.use(htmlToPdf)
4、在需要的导出的页面..调用我们的getPdf方法即可.
Html
//给自己需要导出的ui部分.定义id为"pdfDom".此部分将就是pdf显示的部分
js
exportdefault{
data(){
return{
htmlTitle:'页面导出PDF文件名'
}
}
}
总结
以上所述是小编给大家介绍的Vue导出页面为PDF格式的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!