Я занимаюсь разработкой приложения в wpf, которое печатает фотографии в цикле, поэтому я хотел бы получить фактический момент, когда работа действительно выполнена, и я могу перейти к другой.
Я печатаю, используя класс PrintDocument, я пробовал событие EndPrint, но оно срабатывает, когда файл отправляется на принтер, а не когда принтер выполняет свою работу. Также в системной очереди документ исчезает до окончания печати. Можно ли получить как-нибудь информацию о состоянии принтера?
PrintDocument pd = new PrintDocument();
PrinterSettings.PaperSizeCollection ps = pd.PrinterSettings.PaperSizes;
PaperSize size = new PaperSize();
foreach (PaperSize Psz in ps)
{
if (Psz.PaperName == ev.PaperSize)
{
size = Psz;
break;
}
}
pd.PrinterSettings.PrinterName = ev.printerName;
pd.DefaultPageSettings.PaperSize = size;
pd.DocumentName = "aaaaa";
pd.PrintPage += PrintPage2;
pd.EndPrint += new PrintEventHandler(this.PrintEnd2);
pd.Print();
var myPrintServer = new LocalPrintServer();
var pq = myPrintServer.GetPrintQueue(ev.printerName);
var jobs = pq.GetPrintJobInfoCollection();
foreach (var job in jobs)
{
var done = false;
while (!done)
{
pq.Refresh();
job.Refresh();
done = job.IsCompleted || job.IsDeleted || job.IsPrinted;
}
}
ai++;
PopAction();