页面html结构导出为word或pdf

一、使用场景和原理

需要将当前页面(一般详情页面)或者dom容器中的内容保存/截图,并且导出为word或者pdf

导出word:获取dom结构直接转化为word导出

导出pdf:用canvas生成当前页面或者dom范围的快照,参考截图功能,然后将生成的canvas转为pdf内容并导出

二、需要用到的插件
复制代码
npm i mhtml-to-word --save  //html结构转为word插件
npm i html2canvas --save  //获取dom,用canvas画下来,转为base64格式
npm i jspdf --save	//将canvas内容转为pdf内容
三、使用
复制代码
import { exportWord } from 'mhtml-to-word'
import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';

导出为word:

复制代码
exportToWord=(e)=>{
    e.preventDefault();
    exportWord({
      filename: "日报详情",
      selector: ".dailyDetail",    //容器id
      style:''
    })
}

导出为pdf:

复制代码
exportToPdf=(e)=>{
    e.preventDefault();
    let dom = document.getElementById('dailyDetail');
    let w = dom.offsetWidth
    let h = dom.offsetHeight
    html2canvas(dom)
      .then((canvas) => {
      	//第一个参数为第一页pdf方向,p为纵向i为横向;第二个为单位,一般取mm,px;
      	//第三个为第一页的格式
        let pdf = new jsPDF('p', 'px', 'a4');   
        //参数1:图片资源,可以是图片文件的路径或者base64编码字符串
        //参数2:类型
        //参数3,4:图片在PDF中的x、y轴坐标
        //参数5,6:图片在PDF中的宽度、高度
        //参数7(可选):指定图片资源的别名
        //参数8(可选):指定图片的压缩质量,取值为0-1之间的浮点数
        //参数9(可选):指定图片的旋转角度,取值范围为0-360之间的整数
        pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, w, h);
        pdf.save('日报详情.pdf');
    });
}
相关推荐
excel16 分钟前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒1 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
计算机魔术师1 小时前
Muse Spark跑赢Gemini,但真正的底牌是这种设计
前端
PYB32 小时前
【Web·JS·基础】函数的使用和展运算符...objs
前端·javascript
指针向南2 小时前
Chrome读不了HEIC怎么办:原生解码和WASM两条路
前端·图像处理·人工智能·chrome·计算机视觉·wasm
默_笙2 小时前
🚥 给 RAG 装一台心电监护仪:LangSmith 全链路观测(上)
前端·javascript
前端snow3 小时前
ai agent --- mem0 外挂记忆系统
前端
变与不变8064 小时前
js同步和异步难点重点详解
开发语言·javascript·ecmascript
特立独行的猫a4 小时前
用仓颉写一个 Tauri:IPC 的每次往返实现原理(web层到仓颉层的触发过程)
前端·ui·harmonyos·tauri·鸿蒙·仓颉
Dovis(誓平步青云)4 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑