Bagikan melalui


Menambahkan dukungan pengumpan dokumen

Penting

Artikel ini berisi informasi yang berlaku untuk sistem operasi Windows usang.

Pengumpan dokumen adalah unit yang dilampirkan atau dibangun ke dalam pemindai yang secara otomatis mengumpan dokumen kertas dalam posisi yang akan dipindai. Untuk pemindai dengan pengumpan dokumen, fungsionalitas diekspos dan dikontrol melalui penambahan properti yang terkandung dalam daftar berikut. Untuk Windows Me dan Windows XP, properti berikut ini terletak pada item akar:

Untuk Windows Me dan Windows XP, properti pengumpan dokumen opsional berikut ini terletak pada item anak:

Jika perangkat memiliki flatbed, pengumpan dokumen, dan duplexer, driver melaporkan properti WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES sebagai FEED | FLAT | DUP. Pastikan nilai yang valid untuk WIA_DPS_DOCUMENT_HANDLING_SELECT diatur dengan benar.

Sebagai contoh, misalkan aplikasi berniat untuk melakukan pemindaian dupleks tiga halaman dari pengumpan dokumen. Untuk mencapai hal ini, aplikasi mengatur properti WIA_DPS_DOCUMENT_HANDLING_SELECT ke (FEEDER | DUPLEX) dan mengatur properti WIA_DPS_PAGES ke 3. Jika aplikasi berniat untuk memindai bagian depan halaman terlebih dahulu, aplikasi harus mengatur properti WIA_DPS_DOCUMENT_HANDLING_SELECT ke FEEDER | DUPLEX | FRONT_FIRST. Setelah ini selesai, aplikasi harus menavigasi ke item anak tempat aplikasi harus meminta transfer data. Minidriver melaporkan bagian depan halaman pertama di pengumpan sebagai halaman satu, bagian belakang halaman tersebut sebagai halaman dua, dan bagian depan halaman kedua di pengumpan sebagai halaman tiga.

Penting untuk diingat bahwa jika perangkat memiliki pengumpan dokumen, perangkat harus mendukung properti pengumpan dokumen.

Memperoleh data dari pengumpan dokumen

Ada beberapa perubahan yang harus dilakukan dalam implementasi metode IWiaMiniDrv::d rvAcquireItemData ketika pemindai memperoleh gambar dari pengumpan dokumen.

  1. Aplikasi membaca properti WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES untuk menentukan apakah pemindai mendukung pemindaian menggunakan pengumpan dokumen.

  2. Aplikasi membaca properti WIA_DPS_DOCUMENT_HANDLING_SELECT untuk menentukan apakah pemindai dikonfigurasi untuk memindai menggunakan pengumpan dokumen.

  3. Aplikasi menentukan apakah ada kertas di pengumpan dokumen dengan membaca WIA_DPS_DOCUMENT_HANDLING_STATUS. Jika tidak ada kertas di pengumpan, atur WIA_DPS_DOCUMENT_HANDLING_STATUS ke kode status yang tepat dan kembalikan WIA_ERROR_PAPER_EMPTY dari IWiaMiniDrv::d rvAcquireItemData segera setelah akuisisi terjadi.

  4. Periksa properti WIA_DPS_PAGES untuk menentukan perilaku pemindaian. Jika properti ini nol, pindai semua halaman hingga pengumpan kosong. Jika positif, pindai hanya jumlah halaman yang ditunjukkan oleh nilai yang terkandung dalam properti WIA_DPS_PAGES.

  5. Pindai jumlah halaman yang diminta dengan mengontrol perulangan, terus memindai, dan mengirim data (satu halaman pada satu waktu) ke aplikasi WIA dengan memanggil metode IWiaMiniDrvCallBack::MiniDrvCallback . Contoh kode berikut menunjukkan cara kerjanya:

    for(int x=1; x=Pagecount; x++)
    {
        \\ Tell scanner to scan an image.
        \\ Receive image data from scanner.
        \\ Send the just-scanned image to the registered application.
    }
    
  6. Jika WIA_IPA_TYMED diatur ke TYMED_CALLBACK atau TYMED_MULTIPAGE_CALLBACK, maka pesan tambahan (IT_MSG_NEW_PAGE) harus dikirim setelah satu halaman dipindai dan sebelum halaman berikutnya dipindai. Ini dilakukan dengan memanggil fungsi utilitas layanan wiasSendEndOfPage WIA.

Jumlah halaman yang dikembalikan driver pengumpan dokumen bergantung pada pengaturan properti WIA_DPS_PAGES.

Jika WIA_DPS_PAGES adalah nol

  1. Jika pemindai tidak dapat memindai halaman pertama, segera kembalikan kode kesalahan. Ini termasuk kertas macet dan ketika pemindai kehabisan kertas.

  2. Jika pemindai berhasil memindai halaman pertama dan dapat melanjutkan pemindaian tetapi telah kehabisan kertas, kembalikan kode keberhasilan WIA_STATUS_END_OF_MEDIA. Ini menandakan aplikasi bahwa transfer berhasil, tetapi pemindai telah kehabisan kertas. Beberapa aplikasi merespons WIA_ERROR_PAPER_EMPTY dengan cara yang sama seperti yang mereka lakukan untuk WIA_STATUS_END_OF_MEDIA.

  3. Jika pemindai berhasil memindai halaman pertama dan dapat melanjutkan pemindaian tetapi mengalami kesalahan yang tidak mengakibatkan kehilangan data, kembalikan WIA_STATUS_END_OF_MEDIA. Ini memungkinkan aplikasi untuk memulihkan dan menyimpan halaman apa pun yang dipindai sebelum kesalahan terjadi. Setiap pemindaian berikutnya harus segera mengembalikan kode kesalahan sampai pemindai telah pulih dengan benar dari kegagalan.

  4. Jika pemindai berhasil memindai halaman pertama dan dapat melanjutkan pemindaian tetapi mengalami kesalahan yang mengakibatkan kehilangan data, segera kembalikan kode kesalahan.

Jika WIA_DPS_PAGES positif

  1. Semua aturan yang WIA_DPS_PAGES nya nol berlaku.

  2. Jika pemindai kehabisan kertas sebelum jumlah halaman yang diminta dipindai, kembalikan WIA_STATUS_END_OF_MEDIA. Ini memungkinkan aplikasi untuk menutup sesi pemindaian, sehingga mempertahankan jumlah halaman yang sudah berhasil dipindai. Beberapa aplikasi merespons WIA_ERROR_PAPER_EMPTY dengan cara yang sama seperti yang mereka lakukan untuk WIA_STATUS_END_OF_MEDIA.