使用gsprint进行远程共享打印

时间:2014-10-14 11:26:35

标签: c# printing ghostscript

首先,让我解释一下这个问题。

在终端中使用 gsprint ,文档路径通过命令行发送,文档转换为位图,然后发送到指定的打印机。列表中的打印机是系统中已安装的打印机,它不允许您在另一台计算机中指定其他打印机。

我正在开发一个Web打印管理器,通过 ajax 调用可执行文件并将正确的参数发送到 gsprint 。问题出现了:我在应用程序中列出的可用于打印的打印机是来自C#方法的打印机,它将远程计算机的打印机放在同一网络中。我的打印列表不是自己的服务器,我可以使用 RawPrinterHelper 发送文件,但我真的需要使用 gsprint 。我的C#方法带来了打印机和过滤器 PrintServer 的打印机:

public JsonResult GetPrinters()
{
  IList<string> printers = new List<string>();
  using(var printServer = new PrintServer(string.Format(@"\\{0}", "NITERE")))
  {
    foreach (var queue in printServer.GetPrintQuest()
      .Where(queue => queue.IsShared))
  }
  return Json(printers);
}

这给了我一台名为\\NITERE\Thermical Printer的打印机。 当我通过 RawPrinterHelper 发送任何内容时,它的效果非常好。 当我通过 gsprint 发送任何内容时,炸弹会爆炸。并且 gsprint 只是在我的脸上羞耻:

> gsprint -grey -noquery -printer "\\NITERE\Thermical Printer"
> Copyright (C) 2003-2006, Ghostgum Software Pty Ltd.  All Rights Reserved.
2006-02-24 gsprint 1.9
Couldn't open Windows GDI printer driver
Requested printer: "\\NITERE\Thermical Printer" (Or whatever "\\\\NITERE\\Thermical Printer")
Available printers:
  "ZEBRA Labels Printer"
  "Capybaras are sexy"
  "Microsoft XPS Document Writer"
  "Fax"
  "\\SERVER1\Default Printer"
  "\\SERVER1.local\Main"

有没有办法让 gsprint 以这种方式支持共享打印?

0 个答案:

没有答案