Bagikan melalui


Manajemen pekerjaan

Penting

Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.

Untuk informasi selengkapnya, lihat Panduan desain aplikasi dukungan cetak.

Fitur manajemen pekerjaan telah diperkenalkan di windows versi Windows 8.1 dan yang lebih baru untuk memberikan tampilan langsung antrean pekerjaan.

Fitur ini juga memungkinkan klien untuk membatalkan pekerjaan cetak. Klien dapat memanggil antarmuka pemrograman yang sesuai dari dalam aplikasi perangkat UWP atau dari ekstensi printer.

Antarmuka baru

Antarmuka berikut telah diperkenalkan di Windows 8.1 untuk mengimplementasikan fitur manajemen pekerjaan.

IPrinterQueue2

IPrinterQueueView

IPrinterQueueViewEvent

IPrintJob

IPrintJobCollection

Memulai sesi manajemen pekerjaan

Untuk memulai sesi manajemen pekerjaan, Anda harus terlebih dahulu menentukan dan meminta berbagai pekerjaan yang ingin Anda kelola. Rentang pekerjaan ini disebut "tampilan", dan Anda menggunakan metode IPrinterQueue2::GetPrinterQueueView untuk menentukannya.

Jika Anda ingin mengubah tampilan untuk memantau serangkaian pekerjaan yang berbeda, Anda dapat menggunakan metode IPrinterQueueView::SetViewRange untuk melakukannya.

Perhatikan bahwa antrean cetak adalah antrean dinamis. Jadi setiap kali status antrean cetak berubah, peristiwa dimatikan dan metode IPrinterQueueViewEvent::OnChanged menyediakan rekam jepret tampilan yang diperbarui yang diminta.

Cuplikan kode C# berikut mengilustrasikan penggunaan antarmuka baru untuk memulai sesi manajemen pekerjaan.

void PerformJobManagement(IPrinterQueue2 queue)
{
    //
    // Create a printer queue view and specify the range of
    // print queue positions to be monitored
    //

    PrinterQueueView queueView = queue.GetPrinterQueueView(0, COUNT_JOBS_MONITORED);

    //
    // Add the event handler to the IPrinterQueueView object via the 
    // standard COM event model, the IConnectionPoint mechanism.
    //

    queueView.OnChanged += queueView_OnChanged;


    //
    // When a different range of print jobs needs to be monitored, 
    // reset/update the view.
    //

    queueView.SetViewRange(20, COUNT_JOBS_MONITORED);

}

//
// Create an event handler that is called when
// there is a change in the View
//
void queueView_OnChanged(
    IPrintJobCollection pcollection,
    uint ulviewOffset,
    uint ulviewSize,
    uint ulcountJobsInPrintQueue)
{
    foreach (IPrintJob job in pCollection)
    {
        UIDisplay(job.Name);
        UIDisplay(job.Id);
    }
}

UIDisplay digunakan nama generik untuk mekanisme yang Anda kembangkan untuk menampilkan informasi kepada pengguna.

Selain itu, perhatikan bahwa enumerasi pekerjaan dimulai ketika penanganan aktivitas pertama ditambahkan dan dihentikan ketika penanganan aktivitas terakhir dihapus.

IPrinterQueue2

IPrinterQueueView

IPrinterQueueViewEvent

IPrintJob

IPrintJobCollection