최신 문서 처리 시스템은 종이 매체의 디지털 사본을 얻기 위해 주변 장치와 점점 더 통합되고 있습니다. 이러한 솔루션을 개발하는 데 있어 핵심 문제는 이미지/문서 스캐너와의 상호 작용을 위한 프로토콜 선택입니다. 이 글에서는 주요 표준을 분석하고, 장점과 한계를 평가하며,
VintaSoft TWAIN .NET SDK를 사용하여 지원을 구현하는 방법을 살펴보겠습니다.
1. TWAIN 스캐너를 이용한 문서 스캔
TWAIN은 스캐너 및 디지털 카메라와 같은 이미징 장치와 소프트웨어 애플리케이션 간의 통신을 위한 소프트웨어 프로토콜 및 API(애플리케이션 프로그래밍 인터페이스)를 정의하는 표준입니다.
TWAIN은 표준이므로 다양한 장치와 애플리케이션 간의 상호 작용의 일관성을 보장하여 이미지 작업을 위한 소프트웨어 개발 및 사용을 간소화합니다.
1.1. 지원 운영 체제
TWAIN 표준은 Windows, Linux, macOS 운영 체제를 지원합니다.
1.2. 장치 드라이버 필요 여부
TWAIN 장치를 사용하려면 운영 체제에 TWAIN 드라이버를 설치해야 합니다.
이미지 스캐너용 TWAIN 드라이버는 대부분 이미지 스캐너 제조업체에서 개발합니다. 따라서 TWAIN 드라이버는 이미지 스캐너의 모든 기능을 사용할 수 있도록 하며 이미지 스캐너를 최대한 빠른 속도로 사용할 수 있도록 보장합니다.
TWAIN 표준은 Windows 운영 체제에서 이미지 스캐너를 사용하는 데 가장 널리 사용되는 기본 표준입니다. 거의 모든 이미지 스캐너는 Windows용 TWAIN 드라이버를 제공합니다.
현재 VintaSoft 직원들은 Kodak에서만 Linux용 TWAIN 드라이버를 실제로 작동하는 것을 확인했습니다.
VintaSoft 직원들은 최신 이미지 스캐너용 macOS TWAIN 드라이버의 존재 여부에 대해 아는 바가 없습니다. Apple 포럼에서 Apple이 2019년경 macOS 운영 체제에서 TWAIN 표준 지원을 공식적으로 중단했다는 정보를 찾을 수 있습니다.
1.3. 이미지 스캐너에서 클라이언트 애플리케이션으로 이미지 전송
TWAIN 표준은 이미지 스캐너에서 클라이언트 애플리케이션으로 스캔한 이미지를 전송하는 세 가지 모드를 정의합니다. "네이티브" 모드는 이미지를 Windows 비트맵 객체로 전송합니다. "메모리" 모드는 메모리를 통해 이미지를 전송합니다. 즉, 데이터는 "원시" 이미지 데이터 또는 인코딩된(예: CCITT4 또는 JPEG) 이미지 데이터를 포함하는 바이트 배열로 전송됩니다. "파일" 모드는 스캔한 이미지를 파일에 직접 저장합니다. 세 가지 모드가 제공되므로 클라이언트 애플리케이션의 로직에 가장 적합하고 최대 성능과 유연성을 제공하는 모드를 선택할 수 있습니다.
1.4. 이미지 스캐너 기능 활용
TWAIN 표준은 700페이지가 넘는 텍스트로 구성되어 있으며 TWAIN 드라이버와 애플리케이션 간의 상호 작용 프로세스를 매우 자세하게 설명합니다. TWAIN 표준은 이미지 스캐너의 거의 모든 기능을 활용할 수 있도록 지원합니다.
1.5. 이미지 스캐너 속도
TWAIN 표준을 사용하면 이미지/문서 스캐너의 작업 속도가 매우 빠릅니다.
1.6. 기술 지원
TWAIN 표준은 "TWAIN 워킹 그룹"(웹사이트
https://twain.org)에서 개발합니다. 이 그룹은 TWAIN 표준을 지원하고 개발하는 비영리 단체입니다. 이 그룹에는 다양한 이미지 스캐너 제조업체와 소프트웨어 개발 회사가 포함됩니다.
2. SANE 스캐너를 이용한 문서 스캔
SANE(Scanner Access Now Easy)는 래스터 이미지 스캐너에 접근하기 위한 표준화된 인터페이스를 제공하는 오픈 소스 애플리케이션 프로그래밍 인터페이스입니다. SANE를 사용하면 평판 스캐너 및 카메라와 같은 다양한 장치에서 이미지를 획득할 수 있습니다. SANE는 장치 드라이버와 장치 사용자 인터페이스를 명확하게 분리합니다.
2.1. 지원 운영 체제
SANE API는 Linux 운영 체제에서 이미지 스캐너를 사용하는 데 가장 널리 사용되는 기본 표준입니다.
2.2. 장치 드라이버 가용성
거의 모든 이미지 스캐너에는 Linux용 SANE 드라이버가 있습니다.
이미지 스캐너 제조업체 또는 SANE 커뮤니티에서 SANE 드라이버를 제공합니다. SANE은 API이며 SANE 드라이버의 아키텍처만 정의합니다. SANE 드라이버의 구체적인 구현은 드라이버 개발자에 따라 다릅니다. 대부분의 SANE 드라이버는 SANE 커뮤니티 개발자가 개발합니다.
SANE 장치를 사용하려면 Linux 운영 체제에 SANE 드라이버를 설치해야 합니다. SANE API를 지원하는 장치 목록은 다음 링크에서 확인할 수 있습니다.
http://www.sane-project.org/sane-supported-devices.html
2.3. 이미지 스캐너에서 클라이언트 애플리케이션으로 이미지 전송
SANE 장치는 메모리를 통해 이미지 데이터를 전송합니다. 즉, 스캔한 이미지 데이터는 "원시" 이미지 데이터를 포함하는 바이트 배열로 전송됩니다.
2.4. 이미지 스캐너 기능 작업
SANE API를 정의하는 문서는 크지 않으며 이미지 스캐너의 기본 작업을 위한 기능을 정의합니다. 즉, SANE API는 이미지 스캐너의 고급 기능을 사용하지 않고 간단한 이미지 획득을 위한 API를 정의합니다. 동시에 SANE 드라이버 개발자가 고급 기능에 대한 지원을 구현하는 것을 막는 것은 없지만, 이러한 기능은 SANE API 외부에 있는 기능이 될 것입니다.
2.5.이미지 스캐너 속도
SANE API를 사용하면 이미지/문서 스캐너의 성능이 향상됩니다.
2.6. 기술 지원
SANE 프로젝트(웹사이트
http://www.sane-project.org)는 오픈 소스 프로젝트로, 소스 코드를 자유롭게 수정하고 배포하여 커뮤니티 협업을 촉진하고 지속적인 개선 및 업데이트를 지원합니다.
3. eSCL 스캐너를 이용한 문서 스캔
eSCL(eXtensible Scanner Control Library)은 Mopria Alliance에서 개발한 표준으로, 드라이버 설치 없이 다양한 장치에서 무선 스캔을 가능하게 하는 이미지 스캔 프로토콜을 정의합니다. eSCL 프로토콜은 HTTP(S)와 XML을 사용하여 이미지 스캐너와 이미지 스캐너를 사용하는 애플리케이션 간의 통신을 수행합니다.
3.1. 지원 운영 체제
eSCL 프로토콜은 Windows, Linux, macOS, Android에서 사용할 수 있습니다. eSCL 프로토콜은 유선 또는 무선 네트워크를 사용할 수 있습니다.
3.2. 장치 드라이버 사용 가능 여부
eSCL 장치를 사용할 때 운영 체제에 드라이버를 설치할 필요가 없습니다. 일반적으로 eSCL 장치는 eSCL 프로토콜을 사용하여 장치에 대한 요청을 처리하는 웹 서버가 실행되는 Linux 장치입니다. 웹 서버는 또한 사용자가 웹 브라우저를 통해 스캔 매개변수를 구성하고 이미지 스캔 작업을 편리하게 관리할 수 있는 웹 인터페이스를 제공합니다.
eSCL 프로토콜을 지원하는 기기 목록은 다음 링크에서 확인할 수 있습니다:
https://mopria.org/it/certified-products
3.3. 이미지 스캐너에서 클라이언트 애플리케이션으로 이미지 전송
eSCL 표준은 모든 eSCL 장치가 스캔한 이미지를 JPEG 또는 PDF 스트림으로 전송하는 것을 지원해야 한다고 명시합니다. 즉, 클라이언트 애플리케이션이 이미지 스캐너에서 스캔한 이미지를 수신하려면 다음 단계를 수행해야 합니다.
- eSCL 장치가 문서를 스캔하고 원시 이미지 데이터를 수신합니다.
- eSCL 장치가 스캔한 이미지를 JPEG 또는 PDF 파일로 인코딩합니다.
- eSCL 장치는 HTTP 연결을 통해 JPEG 또는 PDF 스트림을 클라이언트 애플리케이션으로 전송합니다.
- 클라이언트 애플리케이션은 JPEG 또는 PDF 스트림을 수신하여 자체 용도로 사용합니다.
스캔한 이미지를 파일이나 데이터베이스에 즉시 저장해야 하는 경우 이미지 스캐너에서 클라이언트 애플리케이션으로 이미지를 전송하는 프로세스가 최적입니다. 스캔 후 스캔한 이미지를 보려면 JPEG 이미지를 디코딩하거나 PDF 페이지를 렌더링해야 합니다. 이는 원칙적으로 스캔한 이미지의 불필요한 중간 "인코딩-디코딩" 과정이 발생하므로 단점입니다.
eSCL 표준은 이미지 스캐너에서 "raw" 이미지 데이터를 수신하는 기능도 정의하지만, 이 옵션은 필수 사항이 아니며 모든 eSCL 스캐너에서 지원되는 것은 아닙니다.
3.4. 이미지 스캐너 기능 활용
eSCL 프로토콜 사양은 70페이지가 넘는 분량으로, 이미지 스캐너의 기본 기능을 정의합니다. 즉, eSCL 프로토콜은 이미지 스캐너의 고급 기능을 사용하지 않고 간단한 이미지 스캔에 적합합니다.
3.5. 이미지 스캐너 속도
이미지 스캔 속도는 eSCL 이미지 스캐너와 클라이언트 애플리케이션이 연결되는 네트워크 속도에 따라 달라집니다. 대부분의 경우,eSCL 프로토콜을 사용하면 이미지/문서 스캐너에서 빠른 작업 속도를 얻을 수 있습니다.
3.6. 기술 지원
Mopria Alliance(웹사이트:
https://mopria.org)는 모바일 기기에서 무선 인쇄 및 스캔을 위한 범용 표준을 개발하고 홍보하는 프린터 제조업체 및 소프트웨어 개발자 단체입니다. Mopria 표준을 준수하는 기기는 네트워크에서 서로를 찾아 데이터를 교환할 수 있어 스마트폰, 태블릿 등 다양한 모바일 기기에서 간편하고 편리하게 인쇄 및 스캔할 수 있습니다.
4. WIA 스캐너를 사용한 문서 스캔
WIA는 Windows Image Acquisition의 약자입니다. WIA는 소프트웨어가 스캐너 및 디지털 카메라와 같은 이미징 장치와 통신할 수 있도록 하는 Windows 운영 체제의 구성 요소입니다. WIA는 개발자가 이러한 장치의 이미지에 액세스할 수 있는 애플리케이션을 만들 수 있도록 API(애플리케이션 프로그래밍 인터페이스)를 제공합니다.
4.1. 지원 운영 체제
WIA는 Windows 운영 체제의 구성 요소이므로 WIA 호환 장치는 Windows에서만 사용할 수 있습니다.
4.2. 장치 드라이버 사용 가능 여부
WIA 장치를 사용하기 위해 WIA 드라이버를 설치할 필요가 없습니다. 표준 WIA 드라이버가 Windows 운영 체제에 이미 설치되어 있기 때문입니다. WIA를 지원하는 스캐너는 Windows에 설치 후 바로 사용할 수 있습니다.
4.3. 이미지 스캐너에서 클라이언트 애플리케이션으로 이미지 전송
WIA API는 이미지 스캐너에서 클라이언트 애플리케이션으로 스캔한 이미지를 전송하는 두 가지 모드를 정의합니다. "메모리" 모드는 메모리를 통해 이미지를 전송합니다. 즉, 데이터가 바이트 배열로 전송됩니다. "파일" 모드는 스캔한 이미지를 파일에 직접 저장할 수 있도록 합니다.
4.4. 이미지 스캐너 기능 활용
WIA API에 대한 정보는 Microsoft 웹사이트에서 확인할 수 있습니다.
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wia/-wia-wia-application-programming-interface
WIA API는 고급 이미지 스캐너 기능을 사용하지 않고도 이미지를 쉽게 스캔할 수 있는 API를 정의합니다.
4.5. 이미지 스캐너 속도
WIA API를 사용하면 이미지/문서 스캐너에서 우수한 성능을 제공합니다.
4.6. 기술 지원
WIA API는 Microsoft에서 지원합니다.
5. ICA 스캐너를 사용한 문서 스캔
ICA는 Image Capture의 약자입니다. ICA는 "미디어 장치를 검색하고 애플리케이션에서 프로그래밍 방식으로 제어"하도록 설계된 Apple 프레임워크입니다.
ICA 프레임워크는 macOS 운영 체제의 일부이므로 macOS 운영 체제에서 이미지 스캐너를 사용하는 데 가장 널리 사용되는 기본 표준입니다.
ICA 장치를 사용하려면 macOS 운영 체제에 ICA 드라이버를 설치해야 합니다.
6. ISIS 스캐너를 사용한 문서 스캔
ISIS 스캐닝 표준은 스캐너와 같은 이미징 장치를 구동하기 위해 Pixel Translations(현재 OpenText의 일부)에서 개발한 "이미지 및 스캐너 인터페이스" 사양입니다. 고성능, 모듈성 및 고속 스캐너를 애플리케이션에 통합하기 위한 완벽한 사양으로 유명하며, 스캐너가 정격 속도 이상으로 작동할 수 있도록 합니다. 더 일반적인 TWAIN 표준과 달리 ISIS는 초기에는 프로덕션 환경을 대상으로 했으며 공급업체가 드라이버에 대한 로열티를 지불해야 했기 때문에 기업 부문에서는 인기가 덜했습니다.
ISIS 장치를 사용하려면 운영 체제에 ISIS 드라이버를 설치해야 합니다.
ISIS 드라이버는 원래 Pixel Translations에서 개발했으며, 이 회사는 나중에 EMC(현재 OpenText)의 일부가 되었습니다. 스캐너 제조업체는 EMC에 ISIS 드라이버 사용료를 지불하고 하드웨어에 포함시키거나, DELL EMC Captiva와 같은 회사에서 개발 키트와 샘플 코드를 구매하여 자체 ISIS 드라이버를 개발합니다.
ISIS 드라이버를 사용하면 문서 스캐너의 최고/최대 속도를 얻을 수 있습니다.
7. 어떤 이미지 스캔 프로토콜을 선택해야 할까요?
스캔 프로토콜 선택은 장치의 기술적 특성뿐만 아니라 실제 작동 조건, 비즈니스 요구 사항 및 인프라 제약 조건을 고려해야 합니다.
스캐너 유형 및 모델:
- 전문 고가 문서 스캐너는 항상 TWAIN 표준을 지원하며 대부분의 경우 ISIS 표준도 지원합니다.
- 전문 고가 복합기(MFP)는 거의 항상 TWAIN 표준을 지원합니다.
- 저가 이미지 스캐너는 일반적으로 TWAIN 표준을 지원하며 경우에 따라 WIA API를 지원합니다.
- 저가 복합기는 경우에 따라 WIA API만 지원합니다.
- 네트워크 이미지 스캐너와 복합기는 종종 eSCL 프로토콜을 지원합니다.
팁: 개발을 시작하기 전에 소프트웨어에서 사용할 스캐너 모델 목록을 수집하고 제조업체 웹사이트에서 사양을 확인하세요.
품질 및 속도 요구 사항:
- 최대한의 디테일이 중요한 경우(예: 보관 문서 디지털화 시) 고해상도 및 색상 보정을 지원하는 TWAIN 또는 ISIS를 선택하세요.
- 대량의 종이 문서를 대량으로 스캔하는 경우 TWAIN 또는 ISIS를 지원하는 장치가 더 적합합니다.
- 기본적인 사무용 문서 스캔(거래 내역서, 송장, 메모)의 경우 Windows에서는 TWAIN, WIA 또는 eSCL, Linux에서는 SANE 또는 eSCL, macOS에서는 ICA 또는 eSCL을 선택할 수 있습니다.
워크플로우 기능:
- 양면 스캔(듀플렉스) - TWAIN 및 ISIS에서 더 잘 지원됩니다.
- 자동 문서 공급기(ADF) - TWAIN 및 ISIS에서 지원되며, WIA에서는 부분적으로 지원됩니다.
- 자동 자르기 및 정렬 - 장치 드라이버와 선택된 프로토콜에 따라 다릅니다.
예: 양면 용지가 수천 장 있는 아카이브가 있는 경우, 양면 인쇄를 지원하지 않으면 작업 시간이 두 배로 늘어날 수 있습니다.
구현 및 지원 비용:
- TWAIN, WIA, SANE, ICA, eSCL은 드라이버에 대한 유료 라이선스가 필요하지 않습니다.
- ISIS는 종종 유료 라이선스와 드라이버에 대한 추가 비용이 필요합니다.
예산이 제한적인 프로젝트를 시작할 경우 TWAIN이 가장 합리적인 선택입니다.
8. VintaSoft TWAIN .NET SDK 구현
VintaSoft TWAIN .NET SDK는 이미지 스캔을 위한 전문 .NET 라이브러리로, Windows 및 Linux에서 TWAIN 이미지 스캐너, Linux에서 SANE 이미지 스캐너, Windows 및 Linux에서 eSCL 이미지 스캐너를 제어하는 .NET 애플리케이션을 만들 수 있습니다.
또한
VintaSoft TWAIN .NET SDK는 JavaScript API와 VintaSoft 웹 TWAIN 서비스를 제공하여 웹 개발자가 Windows 및 Linux에서 TWAIN 이미지 스캐너, Linux에서 SANE 이미지 스캐너, Windows 및 Linux에서 eSCL 이미지 스캐너로부터 이미지를 수신하는 크로스 브라우저 웹 애플리케이션을 빠르고 쉽게 개발할 수 있도록 합니다. 개발된 웹 애플리케이션은 모든 주요 웹 브라우저에서 사용할 수 있습니다.
스캔 프로토콜 선택은 문서 관리 시스템 개발자에게 전략적인 결정입니다. TWAIN은 여전히 보편적인 표준이며,
VintaSoft TWAIN .NET SDK는 TWAIN, WIA(TWAIN 경유), SANE, eSCL을 지원하여 편리하고 유연한 구현을 제공합니다. 적절한 통합을 통해 다양한 제조사의 스캐너와 데스크톱 애플리케이션부터 클라우드 서비스에 이르기까지 다양한 환경에서 안정적인 작동을 구현할 수 있습니다.