Vue 生成PDF并下载

时间:2019-12-03
本文章向大家介绍Vue 生成PDF并下载,主要包括Vue 生成PDF并下载使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

## 实现原理
### 该功能原理是将页面转化伟canvas在把canvas转化为base64数据 最后将数据通过pdf.js生成下载,故需要和html2canvas一起使用
友情提醒这个pdf下载不能在app里直接使用,ios里面变成在线预览功能;
window.scrollTo(0, 0); const element = document.querySelector('#showContent');// 这个dom元素是要导出pdf的div容器 setTimeout(() => { html2canvas(element, { height: this.$refs.footer.offsetTop, useCORS: true // 如果说所生成的页面中带有跨域的图片,这个useCors需要设置为True 否则画布被污染不会显示 }).then((canvas) => { console.log(canvas); const contentWidth = canvas.width; const contentHeight = canvas.height; // 一页pdf显示html页面生成的canvas高度; const pdfX = (contentWidth + 10) / 2 * 0.75; const pdfY = (contentHeight + 500) / 2 * 0.75;// 500为底部留白 const imgX = pdfX; const imgY = (contentHeight / 2 * 0.75);// 内 const pageData = canvas.toDataURL('image/jpeg', 1.0); const pdf = new JsPDF('', 'pt', [pdfX, pdfY]); // 有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89) // 内容未超过pdf一页显示的范围,无需分页 pdf.addImage(pageData, 'jpeg', 0, 0, imgX, imgY); pdf.save(1234 + '.pdf'); // 生成的文件名字

原文地址:https://www.cnblogs.com/wangjiahui/p/11978053.html