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

使用html-docx-js + fileSaver实现前端导出word

因为html-docx-js是16年的老库了,它代码里面用到的with语法现在严格模式不允许,用npm直接引入会报错,所以我们需要用其它方式引入

首先要将html-docx-js的代码放到项目中

html-docx-js/dist/html-docx.js at master · evidenceprime/html-docx-js · GitHub

我这边的vue项目,所以放到public文件下

代码里面几个with的用法需要改一下,因为现在都是默认严格模式了

全局搜一下with(,然后把涉及到的都改成类似如下的即可

接下来到项目的html文件中,使用script标签引入

如果使用typescript,需要声明一下全局变量

export declare global {interface Window {htmlDocx: anysaveAs: (doc: any, name: string) => void}
}

这样子就可以在项目中愉快的使用了~使用方法如下:

// 需要打印的dom元素
const areaRef = ref()const handleDownload = () => {const cssText = `th, td {border-color: red;}`const content = `<!DOCTYPE html><html><head><style>${cssText}</style></head><body>${areaRef.value.outerHTML}</body></html>`const converted = window.htmlDocx.asBlob(content, {orientation: 'landscape',})window.saveAs(converted, 'test.docx')
}

PS:如果遇到样式问题的话,比如图片宽高(需要使用img标签的width和height属性),字体大小(需要使用pt)不生效的话,可以先把对应的docx模板转成html查看样式后再对应进行修改

docx转html网站

http://www.lryc.cn/news/430553.html

相关文章:

  • Spark2.x 入门:DStream 输出操作
  • Python爬虫——简单网页抓取(实战案例)小白篇
  • linux,ubuntu,使用ollama本地部署大模型llama3,模型通用,简易快速安装
  • JS中的encodeURIComponent函数示例
  • 8.20 pre day bug
  • 位运算专题
  • HaProxy学习 —300K的TCP Socket并发连接实现(翻译)
  • 92.WEB渗透测试-信息收集-Google语法(6)
  • [数据集][目标检测]木材缺陷检测数据集VOC+YOLO格式2383张10类别
  • 【启明智显分享】智能音箱AI大模型一站式解决方案重塑人机交互体验,2个月高效落地
  • 逻辑与集合论基础及其在编程中的应用
  • 【无标题】为什么 pg_rewind 在 PostgreSQL 中很重要?
  • hostapd生成beacon_ie
  • leetcode349:两个数组的交集
  • Metasploit漏洞利用系列(八):MSF渗透测试 - PHPCGI漏洞利用实战
  • 基于python的主观题自动阅卷系统设计与实现
  • 计算机毕业设计仪器设备管理系统-折旧-报废-转移-借出-归还
  • DAY37
  • 将iso格式的镜像文件转化成云平台能安装的镜像格式(raw/vhd/QCOW2/VMDK )亲测--图文详解
  • Numba加速计算(CPU + GPU + prange)
  • electron 两个渲染进程之间通信
  • 配置ROS环境
  • 力扣 128. 最长连续序列
  • Stable Diffusion AI绘画工具的安装与配置(MAC用户)
  • flowable源码解读——并行多实例节点任务是否是顺序生成
  • 【机器学习】AGI的基本概念、技术挑战和应用前景
  • flink 使用RocksDB作为状态后端
  • 【运维高级内容--MySQL】
  • 【仿真与实物设计】基于51单片机设计的打地鼠游戏机——程序源码原理图proteus仿真图PCB设计文档演示视频元件清单等(文末工程资料下载)
  • iPhone设备使用技巧:忘记密码的情况下如何解除iOS 18/17屏幕时间