如何通过Windows服务发送.xps文件以在选定的打印机上打印

时间:2016-02-03 22:44:53

标签: c# printing windows-services xps aspose

我知道过去曾提出过类似的问题,但它们似乎是大约五年前发生的,并且想知道是否有更多相关信息。

我有以下代码,在作为桌面应用程序运行时效果很好:

var printServer = new PrintServer();
var printerQueues = printServer.GetPrintQueues();
var printer = printerQueues.FirstOrDefault(x => x.Name.Equals(sPrinter));

if (printer != null)
{
    try
    {
       printer.AddJob("Printing test file", sLoc, false);
       printJobSuccess = true;
    }
    catch (Exception)
    {
        // Log print fail 
    }
}

但是,当我将它构建到Windows服务时,它不会运行。与此问题(Xps printing from windows service)类似,我也尝试过Aspose,但这也不起作用。

我还尝试使用Aspose.Words和XpsPrint API进行打印(请参阅:http://www.aspose.com/docs/display/wordsnet/How+to++Print+a+Document+on+a+Server+via+the+XpsPrint+API) - 已于2015年11月14日更新,并为Windows服务应用程序提供了一种打印XPS文件的方法。见下文:

using (Stream stream = new FileStream(sLoc, FileMode.Open, FileAccess.Read))
{
    XpsPrintHelper.Print(stream, sPrinter, "Printing test file", true);
}

我看到很多人评论说他们仍然在寻找解决方案。有没有人实现它或知道解决方法/这样做的方式?或者我做错了什么?

0 个答案:

没有答案