node-cmd 打印 Microsoft Word 文档

Node-cmd print Microsoft Word document

我正在尝试在 Node.js 中打开 Microsoft Word 打印 docx 文件。我正在使用 node-cmd 作为 cmd 命令。

我正在使用 electron 制作桌面应用程序。

这是我的代码:

const cmd = require('node-cmd');
cmd.run('cd D:\"Program Files (x86)"\"Microsoft Office"\root\Office16');
cmd.run('WINWORD.EXE C:\Users\ibrahim\Desktop\PalettenZettel\output\Output.docx /mFilePrintDefault /q /n');

但是当我 运行 应用程序时没有任何反应。 "Output.docx" 文件存在。

在同一个终端界面上尝试运行这两个命令,如果你像现在这样操作,行

cmd.run('WINWORD.EXE C:\Users\ibrahim\Desktop\PalettenZettel\output\Output.docx /mFilePrintDefault /q /n');

只是在另一个终端中执行,该终端可能没有您期望的当前工作目录。

const cmd = require('node-cmd');
const proc = cmd.run('"D:\Program Files (x86)\Microsoft Office\root\Office16\WINWORD.EXE" /q /n "C:\Users\ibrahim\Desktop\PalettenZettel\output\Output.docx" /mFilePrintDefault /mFileCloseOrExit')

此外,记录命令的标准输出和标准错误可能对调试它很有用:

const cmd = require('node-cmd');

function getDataLogger(prefix) {
    let data_line = '';

    return function(data) {
        data_line += data;
        if (data_line[data_line.length - 1] === '\n') {
            console.log(`[${prefix}]`, data_line);
        }
    };
}

const proc = cmd.run('"D:\Program Files (x86)\Microsoft Office\root\Office16\WINWORD.EXE" /q /n "C:\Users\ibrahim\Desktop\PalettenZettel\output\Output.docx" /mFilePrintDefault /mFileCloseOrExit')

proc.stdout.on('data', getDataLogger('stdout'));
proc.stderr.on('data', getDataLogger('stderr'));