我正在尝试在 Node.js 中制作一个程序,该程序将匿名化更大项目的 word doc 的给定路径。我已经解压缩了 docx 文件并编辑了 document.xml 文件。我现在需要做的就是重新压缩它。
我已经研究过使用 Archiver,但问题是它将文件夹压缩为 .zip,因此当您尝试将其转换为 docx 时,它已损坏。
fs.readFile('./extracted_doc/word/document.xml', 'utf8', (err, data) => {
if (err) reject(err);
var name = data.indexOf('<w:t>')
var end = data.indexOf('<\/w:t>')
var result = data.replace(data.slice(name + 5, end), "XXXXXXXXXXXXXXXXXX")
fs.writeFile('./extracted_doc/word/document.xml', result, (err) => {
if (err) reject(err)
//zipping the file back to docx
var output = fs.createWriteStream('./anonymized_submission.docx')
var archive = archiver('zip')
archive.on('error', function (err) {
throw err;
})
archive.pipe(output)
archive.directory("./extracted_doc", "extracted_doc")
archive.finalize()
})
});