Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过windows服务将.xps文件发送到所选打印机进行打印_C#_Printing_Windows Services_Xps_Aspose - Fatal编程技术网

C# 如何通过windows服务将.xps文件发送到所选打印机进行打印

C# 如何通过windows服务将.xps文件发送到所选打印机进行打印,c#,printing,windows-services,xps,aspose,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

我知道过去也有人问过类似的问题,但这些问题似乎来自大约五年前,我想知道是否还有更多关于这方面的信息

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

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服务中时,它不会运行。与这个问题()类似,我也尝试过Aspose,但也不起作用

我还尝试过使用Aspose.Words和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);
}

我看到很多人评论说,他们仍在寻找解决方案。是否有人做到了这一点或知道解决方法/方法?还是我做错了什么?

请注意,本文的主要目的是展示如何使用Aspose.Words和XpsPrint API从ASP.NET或Windows服务应用程序打印文字处理文档。请确保打印机配置正确。您可以在Windows服务中尝试以下代码段进行测试。此代码根本不使用Aspose.Words。因此,如果它不起作用,问题就在你这边。这段代码只打印一张图像。PrintDocument doc=new PrintDocument();doc.PrinterSettings.PrinterName=@“\\192.168.0.2\hp LaserJet 1010系列驱动程序”;doc.PrintPage+=doc\u PrintPage;doc.Print();/-------------------------------------私有void Doc_PrintPage(对象发送方,PrintPageEventArgs e){e.Graphics.DrawImage(Image.FromFile(@“Common\test.jpg”)、e.MarginBounds.Left、e.MarginBounds.Top);}您找到解决问题的方法了吗?请注意,本文的主要目的是展示如何使用Aspose.Words和XpsPrint API从ASP.NET或Windows服务应用程序打印文字处理文档。请确保打印机配置正确。您可以在Windows服务中尝试以下代码段进行测试。此代码根本不使用Aspose.Words。因此,如果它不起作用,问题就在你这边。这段代码只打印一张图像。PrintDocument doc=new PrintDocument();doc.PrinterSettings.PrinterName=@“\\192.168.0.2\hp LaserJet 1010系列驱动程序”;doc.PrintPage+=doc\u PrintPage;doc.Print();/-------------------------------------private void Doc_PrintPage(object sender,PrintPageEventArgs e){e.Graphics.DrawImage(Image.FromFile(@“Common\test.jpg”)、e.MarginBounds.Left、e.MarginBounds.Top)}您找到解决问题的方法了吗?