我们已经构建了一个应用程序,可以接收多个不同格式的文件,pdf、tiff、jpeg、doc 等。接收后,使用安装在服务器本地的第三方打印驱动程序将它们转换为 tiff 文件并设置为默认打印机。为此,我们使用命令行和参数打开 System.Diagnostics.Process,以使用适当的应用程序打印文件。
现在新版本需要是 Windows 服务,到目前为止一切正常,除了打印部分。每当该过程开始时,它永远不会引发异常,并且一切似乎都工作正常,但文件永远不会打印出来。如果我打开任务管理器,我可以看到 MS Paint 已执行(如果是 jpeg 文件),但没有输出 tiff 文件。
作为旁注,最终文件需要是 tiff 文件,因为我们的客户使用了另一个第三方工具,这是它支持的唯一格式。
任何帮助将不胜感激。塞尔吉奥·罗梅罗
我们使用的代码如下:
private const string PROCESS_COMMAND = "mspaint.exe";
private const string PROCESS_ARGUMENTS = @"""{0}""";
Process proc = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
string error = string.Empty;
startInfo.FileName = PROCESS_COMMAND;
startInfo.Arguments = string.Format(PROCESS_ARGUMENTS, fileFullPath);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
proc.EnableRaisingEvents = false;
proc.StartInfo = startInfo;
proc.Start();
using(StreamReader errorReader = proc.StandardError)
{
string standardError = string.Empty;
while((standardError = errorReader.ReadLine()) != null)
{
error += standardError + " ";
}
}
proc.WaitForExit();