2

我有一个文件存储在本地计算机中,并且还连接了一台打印机。因此,通常如果我想将文件打印到连接的打印机,我会在命令提示符下运行以下命令:

cd <path where the file is locally stored>
copy <filename.ext> <portname in which the printer is connected>

因此,例如,如果我在路径中有一个文件/Users/chandrani.chatterjee/Desktop/TestFolder并且在端口上连接了一台打印机,lpt1我将在命令提示符中编写以下命令

cd /Users/chandrani.chatterjee/Desktop/TestFolder
copy testfilename.txt lpt1

所以这会打印我的testfilename.txt

不,我想通过单击 ReactJs 中的按钮来实现这一点。我在网上搜索并发现了shellJs但我不确定如何使用它来触发命令。

我试过了

var sh = require('shelljs');
const { stdout, stderr, code } = sh.exec('cd /Users/chandrani.chatterjee/Desktop/TestFolder', { silent: true });

我也试过

var sh = require('shelljs');
var output = sh.exec('java -version', {silent:true}).stdout;

但在这两种情况下都会出错

无法读取 null 的属性“stdout”

如何正确执行此操作?

编辑:

例如,在 .Net 中,可以使用以下代码实现相同的目的:

function create_send_file() { 

                                var fso = new ActiveXObject("Scripting.FileSystemObject"); 
                                var s = fso.CreateTextFile("c:\\FilePrn\\label.prn", true); 
                                s.WriteLine("some string"); 
                                s.Close(); 
                                var newpath = fso.CopyFile("c:\\FilePrn\\label.prn", "lpt1"); 

                        }
4

1 回答 1

3

您的 Reactapp 正在浏览器中运行,因此无法访问您的 shell。

为此,您需要创建一个 React 应用程序可以调用的 Web 服务。这里可以执行shell命令,将结果返回给浏览器中的React。

于 2019-04-12T12:33:29.113 回答