共用方式為


新增文件摘要器支援

重要

本文包含適用於過時 Windows 作業系統的資訊。

檔摘要器是附加或內建於掃描器的單元,可自動將紙張檔饋送至要掃描的位置。 對於具有文件摘要器的掃描器,此功能會透過新增下列清單中所包含的屬性來公開及控制。 針對 Windows Me 和 Windows XP,下列屬性位於根專案上:

針對 Windows Me 和 Windows XP,下列選擇性文件摘要器屬性位於子專案上:

如果裝置具有扁平化、檔案摘要器和雙工器,驅動程式會將WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES屬性回報為 FEED | FLAT | DUP。 請確定已正確設定WIA_DPS_DOCUMENT_HANDLING_SELECT的有效值。

例如,假設應用程式想要從檔案摘要器執行三個頁面的雙工掃描。 若要達成此目的,應用程式會將 WIA_DPS_DOCUMENT_HANDLING_SELECT 屬性設定為 (FEEDER |雙工) ,並將 WIA_DPS_PAGES 屬性設定為 3。 如果應用程式要先掃描頁面的前方,它應該將 WIA_DPS_DOCUMENT_HANDLING_SELECT 屬性設定為 FEEDER | DUPLEX | FRONT_FIRST。 完成此動作之後,應用程式應該流覽至應該從中要求數據傳輸的子專案。 minidriver 會將摘要器中第一頁的前一頁回報為第一頁、該頁面的背面為第二頁,以及摘要器中第二頁的前一頁為第三頁。

請務必記住,如果裝置有文件摘要器,它必須支援文件摘要器屬性。

從文件摘要器取得數據

當掃描器從文件摘要器取得影像時,必須在 IWiaMiniDrv::d rvAcquireItemData 方法的實作中進行一些變更。

  1. 應用程式會讀取 WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES 屬性,以判斷掃描器是否支援使用檔案摘要器進行掃描。

  2. 應用程式會讀取 WIA_DPS_DOCUMENT_HANDLING_SELECT 屬性,以判斷掃描器是否設定為使用檔案摘要器進行掃描。

  3. 應用程式會藉由讀取WIA_DPS_DOCUMENT_HANDLING_STATUS來判斷檔摘要器中是否有紙張。 如果摘要器中沒有紙張,請將WIA_DPS_DOCUMENT_HANDLING_STATUS設定為適當的狀態代碼,並在取得取得之後立即從 IWiaMiniDrv::d rvAcquireItemData 傳回WIA_ERROR_PAPER_EMPTY。

  4. 檢查 WIA_DPS_PAGES 屬性,以判斷掃描行為。 如果此屬性為零,請掃描所有頁面,直到摘要器是空的為止。 如果是正數,請只掃描WIA_DPS_PAGES 屬性中包含的值所指出的頁面數目。

  5. 呼叫 IWiaMiniDrvCallBack::MiniDrvCallback 方法,藉由控制迴圈、持續掃描及傳送數據 (一頁,一次) 至 WIA 應用程式,以掃描要求的頁數。 下列程式代碼範例示範如何運作:

    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. 如果 WIA_IPA_TYMED 設定為TYMED_CALLBACK或TYMED_MULTIPAGE_CALLBACK,則必須在掃描一個頁面之後,以及在掃描下一個頁面之前傳送額外的訊息 (IT_MSG_NEW_PAGE) 。 這是藉由呼叫 wiasSendEndOfPage WIA 服務公用程式函式來完成。

檔摘要器驅動程式傳回的頁面數取決於WIA_DPS_PAGES屬性的設定。

如果WIA_DPS_PAGES為零

  1. 如果掃描器無法掃描第一頁,請立即傳回錯誤碼。 這包括紙張 Jam,以及掃描器用完紙張時。

  2. 如果掃描器成功掃描第一頁,而且能夠繼續掃描,但已用完紙張,請傳回成功碼WIA_STATUS_END_OF_MEDIA。 這會向應用程式指出傳輸成功,但掃描器已用完紙張。 某些應用程式會以與WIA_STATUS_END_OF_MEDIA相同的方式回應WIA_ERROR_PAPER_EMPTY。

  3. 如果掃描器成功掃描第一頁,而且能夠繼續掃描,但遇到導致數據遺失的錯誤,請傳回WIA_STATUS_END_OF_MEDIA。 這可讓應用程式復原並儲存在發生錯誤之前掃描的任何頁面。 任何後續掃描都應該立即傳回錯誤碼,直到掃描器正確從失敗復原為止。

  4. 如果掃描器成功掃描第一頁,而且能夠繼續掃描,但遇到導致數據遺失的錯誤,請立即傳回錯誤碼。

如果WIA_DPS_PAGES為正數

  1. 套用WIA_DPS_PAGES的所有規則。

  2. 如果掃描器在掃描要求的頁數之前用完紙張,請傳回WIA_STATUS_END_OF_MEDIA。 這可讓應用程式關閉掃描會話,因此保留已成功掃描的頁面數目。 有些應用程式會以與WIA_STATUS_END_OF_MEDIA相同的方式回應WIA_ERROR_PAPER_EMPTY。