You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 lines
1.6 KiB

const exec = require('child-process-promise').exec;
const fsPromises = require('fs').promises;
const path = require('path')
module.exports = function (docxFile, image) {
return new Promise((resolve, reject) => {
let zipName = docxFile.slice(0, -5) + '.zip'
let filePath = path.join(__dirname + '/../public/files')
exec('mkdir -p word/media')
.then(function (result) {
return Promise.all([
fsPromises.copyFile(path.join(__dirname + '/../public/images/resized/' + image),
path.join(__dirname + '/../public/files/word/media/image2.png')),
fsPromises.rename(path.join(__dirname + '/../public/files/' + docxFile),
path.join(__dirname + '/../public/files/' + zipName))
])
}).then((result) => {
return exec(`zip -d ${zipName} ./word/media/image2.png`, {
cwd: filePath
})
}).then((result) => {
return exec(`zip -u ${zipName} ./word/media/image2.png`, {
cwd: filePath
})
}).then((result) => {
return fsPromises.rename(path.join(__dirname + '/../public/files/' + zipName),
path.join(__dirname + '/../public/files/' + docxFile))
}).then(() => {
resolve(docxFile)
})
.catch(function (err) {
reject({
eCode: 500,
eText: err
})
});
})
}