前言

最近接到一个需求,实现上传一个word文档,然后将该word转换成html丢给服务端存上。进行技术调研后发现有三种方法可以实现这个功能:ActiveXObject、docx2html、mammoth。

IE的 ActiveXObject

var oWordApp=new ActiveXObject("Word.Application");

var oDocument=oWordApp.Documents.Open("C://test.doc");

oDocument.SaveAs("C://test.html", 10)

缺点:只有IE才有这个东西

docx2html

Git地址:https://github.com/lalalic/docx2html

使用方法:

// html 部分

// js部分

handleFileSelect(event){

require("docx2html")(event.target.files[0]).then(function(converted){

console.log(converted)

document.querySelector('textarea').value=converted.toString()

})

}

缺点:只能将简单的docx文件转化成html,复杂点的就报错了,如图:

mammoth.js

Git地址:https://github.com/mwilliamson/mammoth.js

中文文档地址:https://www.helplib.com/GitHub/article_106969

使用方法:

//html:部分

Messages

//js:部分

handleFileSelect(event) {

this.readFileInputEventAsArrayBuffer(event, (arrayBuffer) => {

mammoth.convertToHtml({arrayBuffer: arrayBuffer})

.then(this.displayResult)

.done();

});

},

displayResult(result) {

console.log(result)

document.getElementById("output").innerHTML = result.value;

var messageHtml = result.messages.map((message) => {

return '

' + this.escapeHtml(message.message) + "";

}).join("");

document.getElementById("messages").innerHTML = "" + messageHtml + "";

},

readFileInputEventAsArrayBuffer(event, callback) {

var file = event.target.files[0];

var reader = new FileReader();

reader.onload = function(loadEvent) {

var arrayBuffer = loadEvent.target.result;

callback(arrayBuffer);

};

reader.readAsArrayBuffer(file);

},

escapeHtml(value) {

return value

.replace(/&/g, '&')

.replace(/"/g, '"')

.replace(//g, '>');

},

缺点:只支持docx的word文档,并且转换后的标题没有居中,如图:

js把html转换成word,js实现word转换为html相关推荐

  1. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  2. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳 热心网友  2018-11-18 js字符串转化时间戳可以使用自带函数 Date(要转化的时间字符串)先转化为Date类型,之后再将 ...

  3. js将阿拉伯数字转换成中文的大写数字

    js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...

  4. js 将日期转换成时间戳

    接上一篇文章,用到了对时间的排序,来看下怎么把日期转换成时间戳吧! 一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型 ...

  5. js将数字转换成万、亿、万亿

    // js将数字转换成万.亿.万亿 export const numberFormat = (value)=> {var param = {};var k = 10000,sizes = ['' ...

  6. 用原生js把数字转换成货币人民币表示带逗号表示方法

    用原生js把数字转换成货币人民币表示带逗号表示方法 function rmb(str){let strArr = String( parseFloat(str).toFixed(2) ).split( ...

  7. js将秒转换成几天几小时几分几秒,每秒刷新

    //js将秒转换成几天几小时几分几秒function getDuration(second) {var days = Math.floor(second / 86400);var hours = Ma ...

  8. 如何用js将日期转换成时间戳

    一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型转化为时间戳类型,其中时间字符串有要求,形式必须是yyyy-MM-d ...

  9. 使用JS将GPRMC转换成WGS84/GCJ02

    使用JS将GPRMC转换成WGS84/GCJ02 背景 Background 代码 Code GPRMC 转换成WGS84 WGS84转GCJ02 背景 Background 在物联网相关的 应用中, ...

  10. pdf转换成可编辑的word转换器

    头条号:近期有不少网友向我咨询有关PDF转换成可编辑的Word文档的软件,小Q认为网上虽然有很多类似的PDF转换成Word转换器,但是从性能以及转换效果来看,迅捷PDF转换成Word转换器免费版v6. ...

最新文章

  1. Kotlin学习 PART 3:类,对象和接口
  2. sy-repid 和 sy-cprog的区别
  3. jstack命令使用
  4. Java基础---File类,就是这么简单
  5. oracle的文件管理ofm,oracle 文件管理功能
  6. 【路径规划】基于matlab GUI粒子群算法机器人避障路径规划【含Matlab源码 923期】
  7. python修改pdf元信息 metadata
  8. 梦想cms-v1.4-后台存在任意文件读取漏洞
  9. 【 数理逻辑 二 】逻辑概述、现代逻辑学发展历程和形式系统与形式语言
  10. 周鸿祎带头,十家安全公司接受了这些尖锐拷问
  11. SSS1540TypeC转3.5mm线控耳机方案(带按键)参考电路图
  12. 腾讯云直播SDK接入指南
  13. (通俗易懂~)Docker搭建Etcd集群
  14. 全球通史读书笔记上(第七章——战争的起源)
  15. C++笔记8:C++提高编程2:STL---标准模板库
  16. rust卡领地柜权限_rust一个领地柜有多大范围 | 手游网游页游攻略大全
  17. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式...
  18. 论文笔记--Quality Prediction of Asymmetrically Distorted Stereoscopic 3D Images
  19. MySQL 编译安装错误记录
  20. 离线安装K3S Server(v1.19.8+k3s1)

热门文章

  1. vscode please install clang or check configuration 解决办法
  2. android内核剖析电子书pdf下载
  3. 简易重装win10系统
  4. 计算机怎么把文字转换成表格,Word文档如何将文字转换成表格形式
  5. matlab fmincon 怎样停止,请教:matlab 中关于 fmincon 函数问题
  6. 旋钮编码器c代码_求旋转编码器c程序
  7. EM算法:三硬币模型
  8. Firefox火狐设置
  9. 八位二进制转化为十进制
  10. mysql开启ssl以及如何创建证书