word文件转html,再也不用复制word里面得文字了!

493 阅读1分钟

因为app里面的隐私政策和用户协议是h5写的,这两个东西因为app上架需要审核,所以需要不断的修改,而且真的是又臭又长,频繁修改而且多种语言真的要了命,小橘子金贵得手不是来复制文字得,是用来复制优秀得代码得,所以我决定做一个word转html,主要得插件使用mammoth

1.新建docx文件

请务必直接建立docx文件,而不是建立一个doc然后自己再去修改成docx文件的后缀,不然会报这个错

1bd80357e457518cae615b4031b5f64.png

1665641759251.png

以上是我们简历的enPrivacy.docx文件

2.下载插件

npm install mammoth  prettier commander --save

3.代码

"scripts": {
 "word": "node src/wordToHtml/index.js --language "
}
const mammoth = require("mammoth");
const prettier = require("prettier");
const program = require('commander');

program
  .version('0.1.0')
  .option('-language, --language <string>', 'Add language')
  .parse(process.argv);

const language = program.opts().language

console.log(`language输出:${language}`)

function beautifyJs(txt) {
  return prettier.format(txt, {
    parser: "html",
    trailingComma: "es5",
  });
}

const fs = require("fs");
const path = require("path");
mammoth.convertToHtml({path:  path.resolve(__dirname, `./${language}.docx`)})
.then(function(result){
  // 1.已经拿到了html但是是字符串,并且格式没有呀
  var htmlPContent = result.value; // The raw text
  const htmlContent = `
  <!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    ${htmlPContent}
  </head>
  <body>
    
  </body>
  </html>
  `
  const str = beautifyJs(htmlContent)
  // 2.写入到html
  const filePath = path.resolve(__dirname, `./${language}.html`)
  fs.writeFile(filePath, str, { 'flag': 'a' }, function(err) {
    if (err) {
      throw err;
    }
    // 写入成功后读取测试
    fs.readFile(filePath, 'utf-8', function(err, data) {
      if (err) {
        throw err;
      }
      console.log(`${language}.html已经写入啦`)
    });
  });
})
.done();

4.效果

1665646134971.png

1665646209893.png