这是基本前提:
我的用户点击了一些小玩意儿,一个PDF文件被吐出到他的桌面上.我有办法将此文件发送到打印机队列并将其打印到本地连接的打印机吗?
string filePath = "filepathisalreadysethere";
SendToPrinter(filePath); //Something like this?
Run Code Online (Sandbox Code Playgroud)
他会多次这样做.对于教室里的每个学生,他必须打印一张小型成绩单.所以我为每个学生生成一个PDF,我想自动化打印过程,而不是让用户生成pdf,打印,生成pdf,打印,生成pdf,打印.
有关如何处理此问题的任何建议?我在Windows XP上使用Windows Forms .NET 4运行.
我发现这个StackOverflow问题,其中接受的答案表明:
创建文件后,可以通过命令行打印它们(可以使用System.Diagnostics命名空间中的Command类)
我怎么做到这一点?
我正在使用phantomjs在我的nodejs应用程序中用HTML创建一个pdf文档.到目前为止,这完全有效.现在我想直接将此文件打印到网络打印机.我正在使用节点打印机模块,打印本身也可以.但仅限RAW格式.
var format = 'RAW';
var printerName = '\\\\PRNTSRV\\Kyo Copy Printer';
var data = fs.readFileSync('./tmp/phantom.tmp.pdf');
printer.printDirect({
data: data,
printer: printerName,
type: format,
success: function(id) {
console.log('printing done with id', id);
res.json({
success: true,
message: 'printed at ' + printerName
});
},
error: function(err) {
console.log('error on printing: ' + err);
}
});
Run Code Online (Sandbox Code Playgroud)
有些打印机在将pdf文档作为RAW发送时就会理解它,但是我们的很多打印机(尤其是最终需要系统的标签打印机)不了解PDF文件格式,我必须将它们发送为EMF.我试过TEXT也没用,所以这一切都指向EMF.
我尝试使用node-imagemagick和node-pdfium将pdf转换为emf,但我无法同时运行.Imagemagick生成了空文档,我没有得到node-pdfium来编译.每次使用npm install pdfium时它都会中断.这个类型的错误在github页面上有一个未解决的问题,但自4月以来没有响应,所以我想我要找到另一个替代方案.
现在我的问题是,如何在不使用imagemagick和node-pdfium的情况下将PDF文件转换为EMF格式?
UPDATE
我现在用ghostscript(pdf2ps)生成一个postscript文件,并尝试将它作为RAW发送到几台打印机,但这也不起作用.我正在生成这样的postscript,它工作正常并生成有效的level2 postscript文件:
var exec = require('child_process').exec;
exec(
'"' + config.gs_binary + '" '
+ '-dNOPAUSE -dBATCH -sDEVICE=ps2write '
+ '-sOutputFile=' …Run Code Online (Sandbox Code Playgroud) 我目前正在构建一个电子应用程序.我在我的本地文件系统上有一个PDF,我需要静默打印出来(在默认打印机上).我遇到了节点打印机库,但它似乎对我不起作用.有没有简单的解决方案来实现这一目标?