nodejs將word文件轉為html檔案(指令碼)--獲取word文件內容
阿新 • • 發佈:2018-12-25
本來是想寫 用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))