nodejs将word文档转为html文件(脚本)--获取word文档内容

本来是想写 用nodejs 或者 js 将word文档转为html的脚本,
js在IE浏览器下有 new ActiveApplication 对象可以 获取文档
nodejs 获取文档看这篇http://www.jianshu.com/p/68a420a68ded 因为还没时间整理 所以先给大家个链接

思路是这样,先获取文档内容, 可以用代码得到内容也就是跟我们通过接口获取服务端的数据一样了,之后变可以 用js 拼接出一个html 文件



  let fs = require("node-fs")
  let AdmZip = require('adm-zip')
  let zip = new AdmZip('./help.zip')
  let contentXml = zip.readAsText("word/document.xml")
  let str = ""
  let arr = []
  let header = "<!DOCTYPE html>\n" +
    "<html lang=\"en\">\n" +
    "<head>\n" +
    "  <meta charset=\"UTF-8\">\n" +
    "  <title>Title</title>\n" +
    "</head>\n" +
    "<body>"
  let footer = "</body>\n" +
    "</html>"
  let one = ''
  // console.log('111',contentXml)
  // console.log('111',contentXml.match(/<w:t>[\S]*?<\/w:t>/ig))
  // return
  // contentXml.match(/<w:t xml:space="preserve">[\S]*?<\/w:t>/ig).forEach((item,index,array) => {
  contentXml.match(/<w:t>[\S]*?<\/w:t>/ig).forEach((item,index,array) => {
    // console.log(index+':'+'刚进入循环的str:',str)
    // let tem = item.slice(26, -6)
    let tem = item.slice(5, -6)
    // console.log(array[index].slice(26, -6),array[index].slice(26, -6).length)
    // return
    // console.log(index,':',tem)
    if (tem && tem !== "" && tem !== " " && tem !== "  " && tem !== "   ") {
      if (tem.length === 1) {
        // console.log('tem为1的时候的tem:',tem)
        // str += tem
        if (str !== '') {
          // console.log('str不为空的时候的str',str)
          one = tem
          // str = str.slice(0,-5) + tem + '</p>'
        } else {
          // console.log('str空的时候')
        }
      } else {
        // console.log('tem非1的时候的tem',tem)
        str +='<p>' + one + tem + '</p>' + "\n"
        // console.log('tem非1的时候的str',str)
        one = ''
      }
    }
    // console.log(index+':'+'出循环的str',str)
  })// return
  str = header + "\n" + str + "\n" + footer
  console.log('我要输出了')
  fs.writeFile("./help.html",str,(err) => {
    console.log('111',err)
  })








return
if (!arr[1]) {
  arr.splice(1, 1);
}
arr.forEach((item, index, arr) => {
  if (!item || item === ' ') {
    arr.splice(index, 1)
  }
})

arr.forEach((item, index, array) => {
  if (item.length === 1) {
    array[index - 1] = array[index - 1] + item
  }
})


fs.writeFile("./documentXml.txt", contentXml, (err) => {
  console.log(err)
})
fs.writeFile("./numbering.txt", numberingXml, (err) => {
  console.log(err)
})
fs.writeFile("./styles.txt", stylesXML, (err) => {
  console.log(err)
})

// str += '<p>' + item.slice(26, -6) + '</p>'
// arr.push(item.slice(26, -6))
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值