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
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' , {cwd: filePath}) |
|
.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 |
|
}) |
|
|
|
}); |
|
}) |
|
} |