다음을 통해 공유


플랫베드 스캐너에 대한 기본 검사

WIA 애플리케이션은 스캐너 항목 트리의 루트 항목 및 최상위 자식 항목을 열거하여 스캐너의 지원되는 기능을 확인합니다. 그런 다음 애플리케이션은 이 자식 항목을 검사 원본으로 사용합니다. 예를 들어 플랫베드 스캐너 항목은 플랫베드에서 스캔하는 데 사용되고, 피더 항목은 문서 피더에서 검사하는 데 사용됩니다.

Windows Vista에서 플랫베드 항목의 프로그래밍 및 검사 동작은 Windows XP 및 Windows Me에서 사용하는 오버로드 시스템과 동일합니다. 이 오버로드 시스템은 모든 WIA 특성 플래그를 배치하여 항목 트리의 첫 번째 자식 항목을 프로그래밍합니다.

애플리케이션은 일반적으로 스캐너의 평판을 프로그래밍할 때 다음 작업을 수행하지만 반드시 이 순서대로 수행되는 것은 아닙니다.

  • 최상위 WIA 항목을 열거하고 WiaItemTypeProgrammableDataSource 항목 플래그로 표시되고 WIA_IPA_ITEM_CATEGORY 속성이 WIA_CATEGORY_FLATBED 설정된 항목을 찾습니다.

  • WIA_IPA_TYMED 및 WIA_IPA_FORMAT 속성에 대한 유효한 값을 읽습니다.

  • WIA_IPA_TYMED 속성을 설정하여 메모리 전송 또는 파일 전송 형식을 선택합니다. 사용 가능한 전송 유형에 대한 자세한 내용은 데이터 전송을 참조하세요. IStream 기반 전송의 경우 WIA_IPA_TYMED 기본적으로 TYMED_FILE 설정되며 변경해서는 안 됩니다.

  • WIA_IPA_FORMAT 속성을 설정하여 데이터의 최종 형식을 선택합니다.

  • 이미지 설정(예: WIA_IPA_DEPTHWIA_IPA_DATATYPE)을 선택합니다.

  • 이 WIA 항목을 사용하여 데이터를 전송합니다.

일반적으로 드라이버는 스캐너의 플랫베드 를 사용하여 스캔할 때 다음 작업을 수행합니다.

  1. IWiaMiniDrv::d rvValidateItemPropertiesIWiaMiniDrv::d rvReadItemProperties를 호출합니다. WIA 드라이버는 애플리케이션의 속성 설정 단계에서 모든 속성 설정의 유효성을 검사해야 합니다.

  2. IWiaMiniDrv::d rvWriteItemProperties를 호출합니다. 전달되는 WIA 항목 컨텍스트는 드라이버가 스캐너의 플랫베드 를 사용하여 스캔하려는 것을 드라이버가 알 수 있도록 플랫베드 스캐너 항목에 속합니다.

  3. IWiaMiniDrv::d rvAcquireItemData를 호출합니다. 전달되는 WIA 항목 컨텍스트는 플랫베드 스캐너 항목에 속하므로 드라이버는 플랫베드 도판을 사용하여 애플리케이션이 스캔할 것인지 쉽게 확인할 수 있습니다.

  4. 현재 플랫베드 항목 속성을 사용하여 디바이스를 프로그래밍하고 플랫베드에서 스캔합니다. WIA 드라이버가 플랫베드 검색 모드가 아닌 경우 검사를 위해 이 모드로 전환해야 합니다. 애플리케이션이 플랫베드 사용을 토글하는 특별한 설정은 없습니다. 플랫베드 항목을 사용하여 스캔하는 것은 애플리케이션과 드라이버 간의 계약입니다. 그들은 플랫베드 를 데이터 전송에 사용할 것에 동의합니다.

드라이버는 검사 전에 스캐너의 플랫베드 부분에 적용할 설정으로 플랫베드 스캐너 항목의 WIA 속성을 사용해야 합니다. WIA 애플리케이션은 WIA 드라이버에서 반환되는 데이터의 헤더를 항상 신뢰해야 합니다. 예를 들어 스캐너가 지정된 너비의 이미지를 검색할 수 없다고 판단하여 값을 스캔할 수 있는 너비로 반올림하는 경우 드라이버는 수정된 너비 정보로 이미지 헤더를 업데이트해야 합니다. 이 업데이트는 애플리케이션에서 올바른 정보를 사용할 수 있도록 합니다. WIA 드라이버는 디바이스에서 반환되는 실제 정보로 WIA 속성을 업데이트하려고 시도해야 합니다.

플랫베드 스캐너에 대한 고급 검사

플랫베드에서 다중 지역 검색은 수동 구성을 수행하거나 WIA 구분 필터를 자동으로 사용하여 검색할 수 있습니다. 구분 필터는 수행할 수 있는 작업과 수행할 수 없는 애플리케이션과 다르지 않습니다. 구분 필터에 대해 설명된 것과 동일한 프로시저를 애플리케이션에서 직접 실행하여 새 검사 영역에 대한 자식 항목을 만들 수 있습니다.