webappからのエンドユーザーのスキャナーとのインターフェース(web / scanner integration)

StackOverflow https://stackoverflow.com/questions/1601648

質問

一般的なドキュメント処理webappで次のスキャン手順を検討してください:

  • ユーザーは、コンピューターに接続されたスキャナーを使用してドキュメントをスキャンします
  • スキャンされた画像は、BMP / JPG / TIF / PNGファイルとしてユーザーのコンピューターにローカルに保存されます
  • ユーザーがファイルのアップロードを行う"参照。" Webアプリケーションのボタン
  • ユーザーには、スキャンされた画像を見つけるために使用するファイルダイアログが表示されます
  • ユーザーが[画像のアップロード]をクリックすると、スキャンされた画像は保存されているサーバーにアップロードされます

このプロセスは非常に複雑であり、ステップを減らしてプロセスをよりユーザーフレンドリー/フールプルーフにしたいと思います。理想的な状況では、上記の手順は、手順がドキュメントスキャンを開始し、ドキュメントのスキャンを完了し、「スキャンしてアップロード」と言うとwebappから結果の画像をアップロードする1つのステップのみに置き換えられます。残念ながら、「ウェブ/スキャナー統合」の状態のようです。かなり貧弱なので、これはユートピアかもしれません。

この問題にどのように取り組みますか?具体的には、説明されているユースケースに含まれるステップ数をどのように削減しますか?

役に立ちましたか?

解決

ターゲットオーディエンスがWindowsとIEを実行しており、数ドルを費やすことを気にしない場合、 Atalasoft 探しているものだけを実行するコンポーネントがいくつかあります。

他のヒント

まあ、2年が経過したので、ここに参加したばかりの人のための最新技術のアップデートがあります。

Dynamsoft Atalasoft には、任意のサーバーサイドスタックと互換性のあるマルチブラウザーWebスキャンツールキットがあります。どちらの場合も、ユーザーはActiveX(IE内)またはNPAPIプラグイン(Chrome、Firefoxなど)をインストールして、TWAIN API経由でスキャナーにアクセスする必要があります。

明らかに、時間に余裕がある場合や予算が限られている場合は、独自のプラグインを作成できます。独自のTWAINを記述するのではなく、 FireBreathプラグインフレームワーク、および any TWAINライブラリをお勧めしますコード。

ActiveXまたはプラグインがインストールされると、残りの作業はjavascriptと&クライアント上のHTML、および受信画像を受け入れて処理するサーバー上の何らかの種類のハンドラー。添付ファイルを含むマルチパートフォーム送信のように見せることができます。

Webページと同じブラウザー「セッション」の一部であり、ブラウザーのプロキシ設定、セッションCookie、およびサーバー側認証を継承するため、AJAXを使用してJavaScriptで画像をアップロードすることをお勧めします。 Dynamsoftのコントロールについては知りません。Atalasoftツールキットには、このようなAJAXアップロードが含まれています。画像はプラグインからbase64エンコード文字列としてjavascriptに渡されるため、実際にはローカルファイルは作成されません。

免責事項:AtalasoftのWingScan Webスキャンツールキットに取り組んでいます。

実際に、銀行の誰かが私のアカウントを設定しているときにこれをしているのを見て、私はまったく驚いた。問題の銀行はWindowsとIEを使用していました。同じように制御された環境にいると思います。銀行は、カスタム/予測可能なスキャナードライバーとActiveXコントロールの組み合わせを使用したと思います。

「スキャナーを開く」と書かれたページが読み込まれたスタッフメンバーがドキュメントをポップし、Webページで[スキャン]を押すと、ページが[スキャン中]と表示されるように変更され、スキャンされたドキュメントがWebページに表示され、スタッフメンバーが承認します。スキャナードライバーが特定の場所に画像を送信し、アクティブなXコントロールが表示されるようにポーリングし、画面に画像が表示された後、スタッフメンバーがアクティブなxをアップロードして承認したと仮定することができますバックグラウンド。彼女は次のページを開き、残りのプロセスを続けました。

神は、彼らがどのようにすべての技術を機能させたかを知っていますが、それは可能です。

Silverlight 4が間もなくリリースされます。ユーザーのコンピューター上のCOMオブジェクト(Windowsを実行している場合)と対話する機能を持っていることになっています。理論的には、Silverlight WebページからWIAメソッドを呼び出します。

銀行にリモートデポジットを実装するソリューションを実装しました。 IEでのみ機能します。 LeadTools TWAIN dllと連動する winforms dll が作成されました。 Leadtools TWAIN dllは、すべてのTWAIN minutaeを抽象化します。このアプローチは、ActiveXコントロールを使用するよりも少し優れています。クライアントには.NET Frameworkが必要です。スキャンされた画像はページ上の隠し変数にポストバックされ、サーバーで処理されます。

うーん、スキャンするファイルを見る前にずっと見てみたいと思っていましたが、それはスキャナーと必要な品質に依存すると思います。

「スキャンとアップロードのプロセスを自動化する」ことが目標の場合「ウェブアプリを書く」とは対照的に、既存のスキャナーソフトウェアと単純なftpプログラムを制御するAutoItスクリプトを書きます。

ほとんどの手順を削除する可能性が最も高いオプションは、おそらくユーザーがダウンロードしてローカルマシンで実行するカスタマイズされたスキャンユーティリティを記述することです。

SANEまたはTWAINは、スキャンされた画像の取得を処理します。 cURLは、Webアプリへの画像のアップロードを処理できます。エンドユーザーの作業をさらに簡単にするために、Comet接続などを使用して、ファイルが利用可能になったときにWebページを更新します。

それがオプションではない場合、ユーザーがスキャナーソフトウェアを使用する可能性のあるオプションを確認することができます。現在、多くのプログラムが電子メールまたはftpへのスキャンをサポートしていると思います。

多機能スキャナー/コピー機を使用してイントラネットアプリに使用したソリューションは、WebサーバーがアクセスできるSMB共有をスキャンすることでした。ユーザーは共有へのコピースキャンに移動し、デスクに戻ると、新しい未処理ファイルのリストが表示される新しいスキャンページに移動します。

対象ユーザーは制御された環境であるため、スキャンを実行するWIA / TWAINに基づいて独自のブラウザー拡張機能/プログラムを作成できます。 BHO / ActiveX / XPCOMなどのブラウザ拡張機能を選択した場合、拡張機能をインストールするユーザーの許可を取得する必要があります。プログラムの作成を選択した場合、Webから起動するには、ClickOnceやJava Web StartなどのWeb展開テクノロジが必要になる場合があります。

TWAINとのインターフェイスはWindowsの苦痛です。複雑さはさておき、さまざまなスキャナードライバー開発者が作成したGUIを表示する必要があります。古いスキャナーや、ドキュメントフィーダーからのフルスピードマルチページスキャンなど、他のインターフェイスを介して公開されていない機能をサポートする唯一の方法かもしれません。

MicrosoftのWIAは、スクリプティングオブジェクトモデルを使用してスキャナーとのインターフェイスをより簡単にしますが、スキャナー固有の機能は利用できず、一部の古いスキャナーはインターフェイスをサポートしていません。

スキャン後、Webサービスを呼び出してサーバーに通知し、Webページを定期的に更新して新しい画像を確認できます。

同様のことを行いました。コマンドラインTWAINプログラム( http://www.burrotech.com/quickscan.php)。 $$ $ 49

1)QuickScanプログラムをシェルコマンドとして実行する小さな.Netアプリケーションを開発しました。
2)コマンドが[スキャン]ボタンに割り当てられました。
3)ユーザーがスキャンボタンを押すと、ファイル名を入力するプロンプトが表示されます。ユーザーは、トランザクションIDをファイル名として保存します。
4)別の.Netアプリケーション(または前に言及したものと同じ)がこのファイルを読み取り、ファイル名がトランザクションIDであることを考慮してデータベースにアップロードします。

バターで温かいナイフのように働いた!



IEにトランザクションIDを表示してみて、ユーザーがIDを選択してから[スキャン]を押します。アプリケーションは、SELECTEDテキストを読み取り、SELECTEDテキストをファイル名として使用してファイルを保存します。試していませんが、動作するはずです。

WebアプリケーションがWebブラウザーに限定されていると考える場合、それはユートピアにすぎません。実際、WebアプリケーションにはHTMLやJavascript以外にも多くの異なるテクノロジーを含めることができます。

この問題を解決するクールな方法-実際、いくつかのusbserialデバイスで既に使用していること-は、SOAP + XMPPを使用してアプリケーションを実装することです。 Perl:XML :: CompileX :: Transport :: SOAPXMPP、Catalyst :: Engine :: XMPP2、Catalyst :: Controller :: SOAP、Catalyst :: Model :: SOAPを使用して、これを行うことができます。

XMPPの使用に関する興味深い点は、ホスト+ポートアドレス指定スキーマではなくJID(Jabber ID)を使用してソフトウェアエージェントを検索するため、アドレス指定の管理が簡単になることです。 XMPPを使用する2番目の興味深い部分は、サーバーがクライアントに情報をプッシュするのをより簡単にサポートすることです。

しかし、XMPPを処理したくない場合でも、軽量の組み込みHTTPサーバー(HTTP :: Server :: Simple、Perlで)を使用して同じことを行うことができ、サーバーの現在のスキャナーアドレスを何らかの方法で登録できますコールバックできます。

最後のオプションは、あまりキュートではありませんが、ソフトウェアエージェントがサーバーをポーリングして「ドキュメントをスキャンしてアップロード」するタイミングを確認することです。その特定のマシンを注文し、それが存在するときにその操作を実現します。

要約すると、ローカルソフトウェアエージェントがローカルハードウェアとやり取りしても、XML、SOAPなどのWeb標準を使用してその通信を実行する限り、webappを「web」より少なくすることはできません。 。

WebサイトにJavaアプレットを配置できます。これにより、スキャナーにアクセスし、RESTを介してWebサーバーにデータを送信できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top