当前位置: 首页 > article >正文

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

1.安装
html2pdf官网地址

npm install html2pdf.js
pnpm add html2pdf.js

2.引入

import html2pdf from 'html2pdf.js'

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

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

在这里插入图片描述
在这里插入图片描述

出现上述问题,pdf分页时多了边框原因是<table border="1"></table>写了边框。
解决方案:去掉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();
      });
    },}

http://www.kler.cn/a/470042.html

相关文章:

  • Java SpringBoot使用EasyExcel导入导出Excel文件
  • Android:动态去掉RecyclerView动画导致时长累加问题解决
  • [桌面运维]windows自动设置浅深色主题
  • mongodb==安装prisma连接
  • conda安装及demo:SadTalker实现图片+音频生成高质量视频
  • 《探秘计算机视觉与深度学习:开启智能视觉新时代》
  • VAxios
  • 深入了解 Nginx:进程、代理及用途解析
  • 苍穹外卖-day07(Spring Cache 购物车业务逻辑)
  • Flink 实时数据处理中的问题与解决方案
  • 【简博士统计学习方法】3. 统计学习方法的三要素
  • laravel 批量更新:‌INSERT ... ON DUPLICATE KEY UPDATE
  • 移动端自动化测试Appium-java
  • AI大模型的搭建和训练
  • Linux——修改文件夹的所属用户组和用户
  • 【A-Lab】部署手册:开源AAA解决方案 —FreeRADIUS
  • Git - 记录一次由于少输入了一个命令导致的更改丢失
  • HTML——72. 下拉列表分组(下拉列表中多选)
  • STM32 I2C通信外设
  • 用ResNet50+Qwen2-VL-2B-Instruct+LoRA模仿Diffusion-VLA的论文思路,在3090显卡上训练和测试成功
  • frameworks 之 Winscope 工具
  • 5. CSS引入方式
  • 安装和配置 Apache 及 PHP
  • 【蓝桥杯——物联网设计与开发】Part1:GPIO
  • AWS ELB基础知识
  • 题库刷题知识点总结