6

長い間、フラットベッドスキャナーから複数ページのPDFドキュメントを作成するための特別なソフトウェアが必要であることに悩まされてきました。「スキャナー」はあいまいな単語であるため(これは本当に検索を困難にします!)、明確にしておきます。たとえば、HP F4280プリンター/スキャナーデバイスが紙のドキュメントを光学的に「スキャン」し、次のデジタル表現を作成するプロセスを意味します。通常、最終的には.jpgまたは.tifファイルになります。

問題は、クロスプラットフォームであり、フラットベッドスキャナーから複数ページのスキャンを作成できるプログラムがないことです。これを行うには、ソフトウェアはスキャンされた各ページを一度に1つずつ保存し、ユーザーに別のページをスキャンするかどうかを尋ねる必要があります。複数ページのスキャンを処理するためにドライバーに依存することはできません。ドライバーは、一時停止せずに用紙のスタックを「吸い込み」、ドライバーフレームワークに渡す前にデータを結合するフォームフィードスキャナーに対してのみそれを行うためです。

したがって、私はそのようなプログラムの作成への道を歩み始めています。低レベルでは、Windows XP以降、Mac OS X、および人気のあるLinux2.6ディストリビューションでTWAINおよびSANEインターフェイスをサポートしたいと考えています。2008年以降のヴィンテージ。

これが私がそれがどのように機能するかを想像する方法です。まず、バックエンドでTWAINとSANEのどちらを使用しているかに関係なく、統一されたAPIを提供するライブラリが必要です。APIは、スキャンされたデータの圧縮されているかどうかに関係なく、ビットのバイト配列を提供できる必要があります。TWAINとSANEの間で共有されるいくつかのプロパティを公開する必要があります。たとえば、DPI、用紙サイズ、カラー/グレースケール/線画などです。次に、スキャンの成功から返されるバイト配列の結果の画像形式を明示的に指定するか、ヒントを与えるか、クエリを実行できるようにする必要があります。

私はプログラミング環境には特に関心がありません。私はすべての一般的な命令型/オブジェクト指向言語に精通しています。JavaやC#のようなものがいいのですが、CやC++でも問題なく動作します。

このようなライブラリが手元にあれば、必要に応じてルーチンを呼び出すだけのGUIを構築し、利用可能ないくつかのPDFレンダリングライブラリの1つを使用して出力を作成できます。私は「一度コンパイルしてどこでも実行」を主張しませんが、少なくとも「一度書き込み、どこでもコンパイル」を主張します。もちろん、TWAINとSANEは相互に排他的なプラットフォームで使用できる異なるAPIであるため、使用するAPIを決定するために、ある時点でいくつかの#ifdefまたはプラットフォームを区別する他の方法が必要になります。

私は自分のプログラムと直接リンクしているライブラリを(FSFに従って)自由ソフトウェアとして認定するつもりですが、プログラミング環境の唯一の要件は、Windows XP以降、Mac OS X、およびLinux2.6。

私はそのようなライブラリを見つけるためにかなり多くのことを探してきましたが、フリーソフトウェアのライブラリは言うまでもなく、プロプライエタリのライブラリさえ見つけることができません。誰かがそのような宝石を見つけたら、私にリンクを提供してください-そうでなければ、私のアプリケーションを始めるためのアドバイスをいただければ幸いです。必要に応じて、上記のライブラリの開発を自分で行い、GNULGPLの下で別のプロジェクトとしてリリースします。アプリケーションのために、クロスプラットフォームの互換性を最大化するために、Qt4 / C ++、GTK#を使用した.NET、またはJava/Swingで記述したいと思います。

4

2 に答える 2

2

残念ながら、TWAIN は非常に制限された標準です。ほとんどのメーカーは、独自の GUI を実行するのに十分な TWAIN 機能のみを実装しています。下位レベルの TWAIN 機能と独自の GUI を使用しようとしても、実際に特定のスキャナーを対象としていない限り、実用的な解決策にはなりません。

于 2011-01-21T19:59:20.113 に答える