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)}您找到解决问题的方法了吗?