現代のドキュメント処理システムは、紙媒体のデジタルコピーを取得するために周辺機器と統合されることが増えています。このようなソリューションを開発する際の重要な課題は、画像/ドキュメントスキャナーとのやり取りに使用するプロトコルの選択です。この記事では、主要な標準を分析し、その利点と限界を評価します。また、
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 の従業員は、実際に動作する Linux 用の TWAIN ドライバーを Kodak からのみ確認しています。
VintaSoft の従業員は、最新のイメージスキャナー用の macOS 用 TWAIN ドライバーの存在については何も知りません。Apple フォーラムでは、Apple が 2019 年頃に macOS オペレーティングシステムでの TWAIN 標準のサポートを正式に停止したという情報を見つけることができます。
1.3。イメージスキャナからクライアントアプリケーションへの画像の転送
TWAIN規格では、イメージスキャナからクライアントアプリケーションへスキャンした画像を転送するための3つのモードが定義されています。「ネイティブ」モードでは、画像をWindowsビットマップオブジェクトとして転送できます。「メモリ」モードでは、メモリ経由で画像を転送できます。つまり、データは「生の」画像データまたはエンコードされた(CCITT4やJPEGなど)画像データを含むバイト配列として転送されます。「ファイル」モードでは、スキャンした画像を直接ファイルに保存できます。3つのモードがあることで、クライアントアプリケーションのロジックに最適なモードを選択し、最大限のパフォーマンスと柔軟性を実現できます。
1.4. イメージスキャナ機能の操作
TWAIN規格には700ページを超えるテキストが含まれており、TWAINドライバとアプリケーション間のやり取りのプロセスを詳細に説明しています。TWAIN規格は、イメージスキャナのほぼすべての機能を扱う機能を提供します。
1.5. イメージスキャナ速度
TWAIN規格の使用により、イメージ/ドキュメントスキャナでの作業速度が向上します。
1.6. テクノロジサポート
TWAIN 標準は、「TWAIN ワーキング グループ」(Web サイト
https://twain.org) によって開発されています。このグループには、さまざまなイメージ スキャナー メーカーやソフトウェア開発会社が含まれています。
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プロトコルを使用してデバイスへのリクエストを処理するWebサーバーを実行するLinuxデバイスです。Webサーバーは、ユーザーがスキャンパラメータを設定したり、Webブラウザを介して画像スキャンタスクを便利に管理したりできるWebインターフェースも提供します。
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規格では、画像スキャナから「生の」画像データを受信する機能も定義されていますが、このオプションは必須ではなく、すべてのeSCLスキャナでサポートされているわけではありません。
3.4. 画像スキャナ機能の操作
eSCLプロトコル仕様は70ページ以上で構成され、画像スキャナの基本的な操作に必要な機能を定義しています。つまり、eSCLプロトコルは、画像スキャナの高度な機能を使用せずに、単純な画像スキャンを行うのに適しています。
3.5. イメージ スキャナーの速度
イメージ スキャンの速度は、eSCL イメージ スキャナーとクライアント アプリケーションが接続されているネットワークの速度によって異なります。ほとんどの場合、eSCL プロトコルを使用すると、イメージ/ドキュメント スキャナーでの処理速度が向上します。
3.6. テクノロジ サポート
Mopria Alliance (ウェブサイト
https://mopria.org) は、プリンター製造元とソフトウェア開発者の組織であり、モバイル デバイスからのワイヤレス印刷とスキャンに関するユニバーサル スタンダードを作成し、推進しています。 Mopria 標準により、同標準に認定されたデバイスはネットワーク上で互いを検出し、データを交換できるため、スマートフォンやタブレットなどのさまざまなモバイル デバイスから簡単かつ便利に印刷およびスキャンできるようになります。
4. WIA スキャナーによるドキュメントのスキャン
WIA は Windows Image Acquisition の略です。これは、ソフトウェアがスキャナーやデジタル カメラなどのイメージング デバイスと通信できるようにする、Windows オペレーティング システムのコンポーネントです。WIA は、開発者がこれらのデバイスからイメージにアクセスできるアプリケーションを作成するための API (アプリケーション プログラミング インターフェイス) を提供します。
4.1. サポートされているオペレーティングシステム
WIA は Windows オペレーティング システムのコンポーネントであるため、WIA 準拠のデバイスは Windows でのみ使用できます。
4.2. デバイス ドライバーの可用性
WIA デバイスを動作させるために WIA ドライバーをインストールする必要はありません。標準の WIA ドライバーは Windows オペレーティング システムに既にインストールされているためです。WIA をサポートするスキャナーは、Windows にインストールした後すぐに動作できます。
4.3. イメージ スキャナーからクライアント アプリケーションへのイメージの転送
WIA API は、スキャンしたイメージをイメージ スキャナーからクライアント アプリケーションに転送するための 2 つのモードを定義します。「メモリ」モードでは、メモリ経由で画像を転送できます。つまり、データはバイト配列として転送されます。「ファイル」モードでは、スキャンした画像を直接ファイルに保存できます。
4.4. イメージスキャナ機能の操作
WIA API に関する情報は、Microsoft Web サイト
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) の一部となりました。スキャナ メーカーは、ISIS ドライバの使用料を EMC に支払い、ハードウェアに組み込むか、DELL EMC Captiva などの企業から開発キットとサンプル コードを購入して独自の ISIS ドライバを作成しています。
ISIS ドライバを使用すると、ドキュメント スキャナの速度が最高/最大になります。
7. どの画像スキャン プロトコルを選択すればよいですか?
スキャン プロトコルの選択は、デバイスの技術的特性だけでなく、実際の動作条件、ビジネス要件、およびインフラストラクチャの制限に基づいて行う必要があります。
スキャナーの種類とモデル:
- プロ向けの高価なドキュメント スキャナーは常に TWAIN 標準をサポートし、ほとんどの場合 ISIS 標準もサポートします。
- プロ向けの高価な多機能デバイス (MFP) は、ほとんどの場合 TWAIN 標準をサポートします。
- 安価なイメージ スキャナーは通常 TWAIN 標準をサポートし、WIA API をサポートする場合もあります。
- 安価な MFP は WIA API のみをサポートする場合もあります。
- ネットワーク イメージ スキャナーと MFP は、多くの場合、eSCL プロトコルをサポートしています。
ヒント: 開発を開始する前に、ソフトウェアが動作するスキャナー モデルのリストを収集し、製造元の Web サイトで仕様を確認してください。
品質と速度の要件:
- 最大の詳細が重要な場合 (たとえば、アーカイブ ドキュメントをデジタル化する場合)、高 DPI と色補正をサポートする TWAIN または ISIS を選択します。
- 大量の紙のドキュメントのマス ストリーム スキャンには、TWAIN または ISIS をサポートするデバイスが適しています。
- 基本的なオフィス スキャン (行為、請求書、メモ) の場合、Windows では TWAIN、WIA、または eSCL、Linux では SANE または eSCL、macOS では ICA または eSCL を選択できます。
ワークフローの機能:
- 両面スキャン (duplex) - TWAIN および ISIS でより適切にサポートされます。
- 自動ドキュメント フィーダー (ADF) - TWAIN および ISIS でサポートされ、WIA では部分的にサポートされます。
- 自動トリミングおよび位置合わせ - デバイス ドライバーおよび選択したプロトコルによって異なります。
例: 何千枚もの両面シートを含むアーカイブがある場合、両面印刷がサポートされていないと操作時間が 2 倍になる可能性があります。
実装およびサポートのコスト:
- 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 Web TWAIN サービスも提供しており、Web 開発者は、Windows および Linux の TWAIN イメージ スキャナー、Linux の SANE イメージ スキャナー、Windows および Linux の eSCL イメージ スキャナーから画像を受信するためのクロスブラウザー Web アプリケーションを迅速かつ簡単に作成できます。開発された Web アプリケーションは、すべての主要な Web ブラウザーで使用できます。
スキャンプロトコルの選択は、ドキュメント管理システムの開発者にとって戦略的な決定です。TWAINは依然として世界標準であり、
VintaSoft TWAIN .NET SDKは、TWAIN、WIA(TWAIN経由)、SANE、eSCLをサポートし、便利で柔軟な実装を提供します。適切な統合により、デスクトップアプリケーションからクラウドサービスまで、さまざまなメーカーのスキャナーやさまざまな環境で安定した操作を実現できます。