打印作业从假脱机队列中消失

时间:2016-07-04 07:43:48

标签: c# printing spool

我正在编写C#应用程序以在本地打印机上打印PDF,并在本地打印机上重定向打印任务(如果本地打印机失败)。

问题:当我通过Windows假脱机将任务发送到本地打印机时,即使打印机出现错误(例如缺纸),作业也会在几秒后从假脱机中消失。然而,如果我在失败后将纸张放入打印机,则会打印文档(但仍未显示在假脱机中)。

即使打印机没有工作,打印机似乎也会缓冲打印任务......

这是我的打印代码:

// using PdfiumViewer;

public static void PrintPdf(string path, ManagementObject printer)
{
    PdfDocument doc = PdfDocument.Load(path);
    PrintDocument pd = doc.CreatePrintDocument();

    pd.PrinterSettings.FromPage = 1;
    pd.PrinterSettings.ToPage = doc.PageCount;
    pd.PrinterSettings.PrinterName = printer["Name"].ToString();

    ClearPrintQueue(printer["Name"].ToString());

    if ((bool)printer["WorkOffline"])
        throw new UnavailablePrinterException("L'imprimante est hors ligne.");
    else
        pd.Print();
}

如何避免打印机缓冲或至少检测到作业失败并取消它?

0 个答案:

没有答案