我正在使用此代码在Windows服务中使用C#在本地打印机上打印PDF文件。
Process process = new Process();
PrinterSettings printerSettings = new PrinterSettings();
if (!string.IsNullOrWhiteSpace(basePrint))
printerSettings.PrinterName = basePrint;
process.StartInfo.FileName = fileName;
process.StartInfo.Verb = "printto";
process.StartInfo.Arguments = "\"" + printerSettings.PrinterName + "\"";
process.Start();
process.WaitForInputIdle();
Run Code Online (Sandbox Code Playgroud)
当我设置用户运行Windows服务时,一切正常。
每当我在LocalSystem凭据下运行此代码时,都会出现错误“没有与该操作相关的应用程序”,这通常表示我没有准备好处理扩展名为.pdf的文件的程序。 。
我的问题是我确实有程序(Foxit Reader)来处理此操作,这一事实已得到证实,该代码可与服务上的特定用户一起使用,并且我可以通过右键单击将文件发送到打印机并选择打印选项。
在没有特定用户的情况下,是否可以更改以在服务中使用本地打印机进行打印?