jspdf下载页面pdf文件
本文方法是html2canvas + jspdf
下载html2canvas、jspdf
创建htmlToPdf.js文件
import html2Canvas from 'html2canvas' import JsPDF from 'jspdf' import { Loading } from 'element-ui' let loading export default { install(Vue, options) { // 传入文件名,id名 Vue.prototype.getPdf = function(pdfTitle, id) { loading = Loading.service({ lock: true, text: '正在下载pdf...', background: 'rgba(255, 255, 255, 0.5)' }) html2Canvas(document.querySelector(id), { allowTaint: true, useCORS: true }).then(function(canvas) { loading.close() let contentWidth = canvas.width let contentHeight = canvas.height let pageHeight = (contentWidth / 592.28) * 841.89 let leftHeight = contentHeight let position = 0 let imgWidth = 595.28 let imgHeight = (592.28 / contentWidth) * contentHeight let pageData = canvas.toDataURL('image/jpeg', 1.0) let PDF = new JsPDF('', 'pt', 'a4') if (leftHeight < pageHeight) { PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight) } else { while (leftHeight > 0) { PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight) leftHeight -= pageHeight position -= 841.89 if (leftHeight > 0) { PDF.addPage() } } } PDF.save(pdfTitle + '.pdf') }) } } }
main.js中引入htmlToPdf.js文件
import htmlToPdf from '../src/utils/htmlToPdf'
Vue.use(htmlToPdf)
使用
<el-button type="primary" @click="getPdf('背景信息', '#trade-contract-print')">下载背景信息</el-button>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~