ConvertDoc.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. const fs = require('fs-extra');
  2. const path = require('path');
  3. const ConvertDocX = require('./ConvertDocX');
  4. class ConvertDoc extends ConvertDocX {
  5. check(data, opts) {
  6. const {inputFiles} = opts;
  7. return this.config.useExternalBookConverter &&
  8. inputFiles.sourceFileType && inputFiles.sourceFileType.ext == 'msi';
  9. }
  10. async run(data, opts) {
  11. if (!this.check(data, opts))
  12. return false;
  13. await this.checkExternalConverterPresent();
  14. const {inputFiles, callback, abort} = opts;
  15. const outFile = `${inputFiles.filesDir}/${path.basename(inputFiles.sourceFile)}`;
  16. const docFile = `${outFile}.doc`;
  17. const docxFile = `${outFile}.docx`;
  18. const fb2File = `${outFile}.fb2`;
  19. await fs.copy(inputFiles.sourceFile, docFile);
  20. await this.execConverter(this.sofficePath, ['--headless', '--convert-to', 'docx', '--outdir', inputFiles.filesDir, docFile], null, abort);
  21. return await super.convert(docxFile, fb2File, callback, abort);
  22. }
  23. }
  24. module.exports = ConvertDoc;