Распечатать PDF-файл с помощью Foxit Reader и C#
Моя программа печатает без вывода сообщений через программу чтения PDF Foxit Reader
в новом процессе.
Иногда моя программа пытается распечатать два PDF-файла одновременно, что приводит к сбою одного из них.
Вот мой код:
string filename = "file.pdf";
string fileDir1 = @"C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe";
Process pdfProcess = new Process();
pdfProcess.StartInfo.FileName = fileDir1;
pdfProcess.StartInfo.Arguments = string.Format(@"/t {0} {1}", filename ,"pos-80");
pdfProcess.StartInfo.CreateNoWindow = true;
pdfProcess.StartInfo.WorkingDirectory = Path.GetDirectoryName(fileDir1);
pdfProcess.Start();
if (!pdfProcess.WaitForExit(2500))
{
pdfProcess.Kill();
}
Пожалуйста, помогите мне решить эту проблему.
1 ответ
Убедитесь, что у вас открыт Foxit.
using System.Diagnostics;
List<Process> Processlist = Process.GetProcesses().ToList();
Это дает вам список запущенных процессов.
foreach(Process p in Processlist)
{
Console.WriteLine("Process " + p.Id + " is named '" + p.ProcessName + "'");
}
При запуске приведенного выше кода вы должны увидеть имя процесса Foxit в вашем окне вывода.
В качестве альтернативы, установите точку останова на строке foreach и наведите указатель мыши на список, чтобы увидеть все имена таким образом.
bool IsFoxitProcessRunning = false;
foreach(Process p in Processlist)
{
if(p.ProcessName == "Foxit process name here") //Replace with the name of the foxit process
{
IsFoxitProcessRunning = true;
}
}
Теперь запускайте новый процесс Foxit, только если он еще не запущен.
if(!IsFoxitProcessRunning)
{
//insert code to run next foxit process here.
}
Заметки:
Возможно, вам потребуется реализовать очередь, чтобы отслеживать PDF-файлы, ожидающие запуска.
Вы также можете предупредить ИТ-поддержку, если Foxit ожидает более 5 или 10 минут работы.
Вы можете сделать
Processlist
атрибута класса, и периодически обновляйте Processlist, используяTimer
по телефонуProcesslist = Process.GetProcesses().ToList();
на мероприятии Tick. каждые 30 секунд или около того, пока PDF-файл ожидает печати.