Мы создали приложение, которое получает несколько файлов в разных форматах: 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();