Vue——使用html2pdf插件,下载pdf文档到本地

1.安装
html2pdf官网地址

javascript 复制代码
npm install html2pdf.js
pnpm add html2pdf.js

2.引入

javascript 复制代码
import html2pdf from 'html2pdf.js'

3.我的项目是使用的原生avascript,table tr td画表格然后通过html2pdf插件下载pdf。

问题:下载pdf时内容被截断,如下图所示:


javascript 复制代码
出现上述问题,pdf分页时多了边框原因是<table border="1"></table>写了边框。
javascript 复制代码
解决方案:去掉table 上的边框border,给每一行的td 上写上边框。

代码如下:

<el-button type="success" style="margin-bottom: 10px" @click="downClick"
        >点击下载</el-button
      >
      
<div ref="fileContent">
        <table
          width="95%"
          height="40"
          style="border-collapse: collapse"
        >
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">文件名称</td>
            <td style="border: 1px solid;">内容</td>
          </tr>
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">标题</td>
            <td style="border: 1px solid;">
              自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。
            </td>
          </tr>
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">格式</td>
            <td style="border: 1px solid;">内容</td>
          </tr>
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">参考文献</td>
            <td style="border: 1px solid;">
              自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。
            </td>
          </tr>
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">文件记录</td>
            <td style="border: 1px solid;">
              自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。
            </td>
          </tr>
          <tr>
            <td width="15%" style="border: 1px solid;border-right: none;">会议</td>
            <td style="border: 1px solid;">
              自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。自从我第一次拿起羽毛球拍,这项运动就成了我生活中不可或缺的一部分。每当周末的阳光洒向球场,我和爸爸就会准时出现在那里,开始我们的羽毛球对决。
              起初,我总是接不到爸爸的高远球,每次跑动都显得笨拙而缓慢。爸爸耐心地一遍遍给我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。我示范,教我如何握拍、站位和挥拍。在他的鼓励下,我逐渐掌握了技巧,从简单的发球到复杂的扣杀,每一次进步都让我兴奋不已。
              记得有一次,学校举办了一场羽毛球比赛,我毫不犹豫地报名参加了比赛。比赛那天,观众席上坐满了同学和老师,气氛紧张而热烈。我信心满满地走上赛场。对手是一个比我高大的同学,但他显然低估了我的实力。比赛开始,我灵活地移动步伐,精准地击球,很快就占据了上风。我全神贯注地应对每一个来球,时而轻盈吊球,时而迅猛扣杀,每一次得分都让我信心倍增。最终,在激烈的角逐中,我赢得了比赛的冠军。
              如今,打羽毛球已经成为我最自豪的拿手好戏。它不仅锻炼了我的身体,更培养了我坚韧不拔的精神。每当我在球场上挥洒汗水,那份快乐和成就感总是油然而生。在未来的日子里,我会继续在羽毛球的道路上不断前进,享受每一次跃动带来的快乐。
            </td>
          </tr>
        </table>
      </div>



methods:{
downClick() {
      this.$nextTick(() => {
        const element = this.$refs.fileContent;
        const options = {
          margin: 1,
          filename: "文件" + ".pdf",
          image: { type: "jpeg", quality: 0.98 },
          html2canvas: { scale: 2 },
          jsPDF: {
            unit: "in",
            format: "letter",
            orientation: "portrait",
          },
          pagebreak: { mode: "avoid-all", },
        };
        html2pdf().from(element).set(options).save();
      });
    },}
相关推荐
伍哥的传说29 分钟前
鸿蒙系统(HarmonyOS)应用开发之手势锁屏密码锁(PatternLock)
前端·华为·前端框架·harmonyos·鸿蒙
yugi98783830 分钟前
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
前端
浪裡遊42 分钟前
Sass详解:功能特性、常用方法与最佳实践
开发语言·前端·javascript·css·vue.js·rust·sass
旧曲重听12 小时前
最快实现的前端灰度方案
前端·程序人生·状态模式
默默coding的程序猿2 小时前
3.前端和后端参数不一致,后端接不到数据的解决方案
java·前端·spring·ssm·springboot·idea·springcloud
夏梦春蝉2 小时前
ES6从入门到精通:常用知识点
前端·javascript·es6
归于尽2 小时前
useEffect玩转React Hooks生命周期
前端·react.js
G等你下课2 小时前
React useEffect 详解与运用
前端·react.js
我想说一句2 小时前
当饼干遇上代码:一场HTTP与Cookie的奇幻漂流 🍪🌊
前端·javascript
funnycoffee1232 小时前
Huawei 6730 Switch software upgrade example版本升级
java·前端·华为