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

vue3 实现将html内容导出为图片、pdf和word

 话不多说直接开始

本文使用到的开源插件库地址 wang1xiang

1.1 下载依赖

npm install html2canvas jspdf html-docx-js-typescript file-saver --save

2.1 下载工具

npm install html2image-pdf-word --save

 3.1 页面使用

<template><div><div @click="htmlToPdfFn(1)">导出为图片</div><div @click="htmlToPdfFn(2)">导出为pdf</div><div @click="htmlToPdfFn(3)">导出为Word</div><div id="report" style="padding: 40px;"><el-table :data="tableData" style="width: 100%"><el-table-column type="selection" width="55" /><el-table-column label="Date" width="120"><template #default="scope">{{ scope.row.date }}</template></el-table-column><el-table-column property="name" label="Name" width="120" /><el-table-column property="address" label="use show-overflow-tooltip" width="240"show-overflow-tooltip /><el-table-column property="address" label="address" /></el-table><div>测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字</div><div>测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字</div><div>测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字,测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字</div></div></div>
</template><script setup lang="ts">
import { exportAsPdf, exportAsWord, exportAsImage } from 'html2image-pdf-word';
interface User {date: stringname: stringaddress: string
}
const tableData: User[] = [{date: '2016-05-04',name: 'Aleyna Kutzner',address: 'Lohrbergstr. 86c, Süd Lilli, Saarland',},{date: '2016-05-03',name: 'Helen Jacobi',address: '760 A Street, South Frankfield, Illinois',},{date: '2016-05-02',name: 'Brandon Deckert',address: 'Arnold-Ohletz-Str. 41a, Alt Malinascheid, Thüringen',},{date: '2016-05-01',name: 'Margie Smith',address: '23618 Windsor Drive, West Ricardoview, Idaho',},
]let htmlToPdfFn = async (type: number) => {const dom: any = document.querySelector('#report');const filename = 'test';switch (type) {case 1:await exportAsImage(dom, filename, '水印,水印水印');break;case 2:await exportAsPdf(dom, filename);break;case 3:await exportAsWord(dom, filename);break;}
}
</script>
<style scoped lang="scss"></style>

相关文章:

  • python的mtcnn检测图片中的人脸并标框
  • Android移动应用开发入门示例:Activity跳转界面
  • 数据仓库建设全解析!
  • Whisper微调及制作方言数据集
  • 动态哈希映射深度指南:从基础到高阶实现与优化
  • Vue开发网站会有“#”原因是前端路由使用了 Hash 模式
  • Qt使用 SQLite 数据库的基本方法
  • 代码随想录算法训练营第二十六天
  • Python爬虫第19节-动态渲染页面抓取之Splash使用下篇
  • React-组件和props
  • 【Python爬虫实战篇】--Selenium爬取Mysteel数据
  • Cephalon端脑云:神经形态计算+边缘AI·重定义云端算力
  • 网页版 deepseek 对话问答内容导出为 PDF 文件和 Word 文件的浏览器插件下载安装和使用说明
  • spark-streaming(二)
  • NeRF:原理 + 实现 + 实践全流程配置+数据集测试【Ubuntu20.04 】【2025最新版】
  • 【1区SCI】Fusion entropy融合熵,多尺度,复合多尺度、时移多尺度、层次 + 故障识别、诊断-matlab代码
  • CE第一次作业
  • 协作开发攻略:Git全面使用指南 — 第一部分 Git基础
  • 3台CentOS虚拟机部署 StarRocks 1 FE+ 3 BE集群
  • 与终端同居日记:Shell交响曲の终极共舞指南
  • 男子称喝中药治肺结节三个月后反变大增多,自贡卫健委回应
  • 获公示拟任省辖市委副书记的胡军,已赴南阳履新
  • 岭南非遗大IP来上海了,舞剧《英歌》在文化广场连演两场
  • 美媒称特朗普考虑大幅下调对华关税、降幅或超一半,外交部回应
  • 继续免费通行!五一假期全国高速公路日均流量约6200万辆
  • 鼓励每位学生为优秀定义,上海奉贤这所学校有何特色?