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

页面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');
    });
}

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

相关文章:

  • 01. 板载硬件资源和开发环境
  • 五、W5100S/W5500+RP2040树莓派Pico<UDP Client数据回环测试>
  • 【设计模式】第3节:设计模式概论
  • 用VScode做PPT:marp插件
  • 学习笔记二十三:Deployment入门到企业实战应用
  • [moeCTF 2023] pwn
  • Azure - 机器学习:创建机器学习所需资源,配置工作区
  • Ubuntu 22.04 更新完内核重启卡在 grub 命令行解决办法
  • STM32 定时器配置不当导致误差(精度)偏大的问题发现与解决
  • 新风机小助手-风压变速器
  • Linux网络流量监控iftop
  • 已更新!宝藏教程!MYSQL-第六章节多表查询(一对一,多对多,一对多),连接查询(内,外连接),联合查询,子查询 代码例题详解这一篇就够了(附数据准备代码)
  • 番外8.2---配置/管理硬盘
  • SaveFileDialog.OverwritePrompt
  • KNN 和 SVM 图片分类 任务 代码及细节分享
  • Python单元测试
  • 运行报错(三)git bash报错fatal: detected dubious ownership in repository at
  • 【LeetCode】1423 可获得的最大点数(中等题)
  • 制造业中的微小缺陷检测——应用场景分析与算法选择(YoloV8/CANet)
  • Linux环境基础开发工具的使用