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

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>

http://www.xdnf.cn/news/1595.html

相关文章:

  • Linux Awk 深度解析:10个生产级自动化与云原生场景
  • 私钥连接服务器(已经有服务器私钥
  • 安卓adb shell串口基础指令
  • 【激光雷达3D(7)】CenterPoint两阶段细化仅使用BEV特征;PV-RCNN两阶段细化使用体素特征;M3DETRTransformer统一多表征特征
  • 云智融合普惠大模型AI,政务服务重构数智化路径
  • 【C语言经典算法实战】:从“移动距离”问题看矩阵坐标计算
  • Python正则表达式:用“模式密码“解锁复杂字符串
  • C++中的next_permutation全排列函数
  • 【高频考点精讲】JavaScript中的组合模式:从树形结构到组件嵌套实战
  • 与终端同居日记:Shell交响曲の终极共舞指南
  • 【玩转全栈】—— Django+vue3+讯飞星火API 实现前端页面实时AI答复
  • C++算法(14):K路归并的最优解法
  • python的pip download命令-2
  • COMSOL多孔结构传热模拟
  • gem5-gpu教程06 回归测试
  • 2025年渗透测试面试题总结-拷打题库13(题目+回答)
  • GPLT-2025年第十届团体程序设计天梯赛总决赛题解(2025天梯赛题解,共计266分)
  • 【LangChain4j】AI 第二弹:项目中接入 LangChain4j
  • QVQ-Max视觉推理模型发布:多模态 AI 的“眼脑协同”革命
  • 详解微服务监控(springboot admin server client、实时日志配置、动态修改日志级别、自定义服务通知实现等
  • 通过智能分块策略、动态分块、多路召回与重排序融合、异构数据关联与溯源提升Ragflow与LangChain提升RAG的召回率
  • HarmonyOS Grid 网格列表可长按 item 拖动移动位置
  • ROS第十二梯:ros-noetic和Anaconda联合使用
  • ProxySQL实现mysql8主从同步读写分离
  • 开启内测!360纳米AI推出“MCP万能工具箱”
  • C# 设计原则总结
  • stack和queue的学习
  • 基于 Windows11 WSL2 的 ESP-IDF V5.4 开发环境搭建教程
  • 如何安装Visio(win10)
  • 简易博客点赞系统实现